v5 33dac7ee0a1f cached
1301 files
5.4 MB
1.5M tokens
1725 symbols
1 requests
Download .txt
Showing preview only (6,061K chars total). Download the full file or copy to clipboard to get everything.
Repository: cometchat/cometchat-uikit-react-native
Branch: v5
Commit: 33dac7ee0a1f
Files: 1301
Total size: 5.4 MB

Directory structure:
gitextract_hs1fkjg0/

├── .gitignore
├── README.md
├── examples/
│   ├── SampleApp/
│   │   ├── .bundle/
│   │   │   └── config
│   │   ├── .eslintrc.js
│   │   ├── .gitignore
│   │   ├── .prettierrc.js
│   │   ├── .vscode/
│   │   │   └── settings.json
│   │   ├── .watchmanconfig
│   │   ├── App.tsx
│   │   ├── AppErrorBoundary.tsx
│   │   ├── Gemfile
│   │   ├── README.md
│   │   ├── android/
│   │   │   ├── app/
│   │   │   │   ├── build.gradle
│   │   │   │   ├── debug.keystore
│   │   │   │   ├── proguard-rules.pro
│   │   │   │   └── src/
│   │   │   │       └── main/
│   │   │   │           ├── AndroidManifest.xml
│   │   │   │           ├── java/
│   │   │   │           │   └── com/
│   │   │   │           │       └── sampleapp/
│   │   │   │           │           ├── MainActivity.kt
│   │   │   │           │           └── MainApplication.kt
│   │   │   │           └── res/
│   │   │   │               ├── drawable/
│   │   │   │               │   └── rn_edit_text_material.xml
│   │   │   │               └── values/
│   │   │   │                   ├── colors.xml
│   │   │   │                   ├── strings.xml
│   │   │   │                   └── styles.xml
│   │   │   ├── build.gradle
│   │   │   ├── gradle/
│   │   │   │   └── wrapper/
│   │   │   │       ├── gradle-wrapper.jar
│   │   │   │       └── gradle-wrapper.properties
│   │   │   ├── gradle.properties
│   │   │   ├── gradlew
│   │   │   ├── gradlew.bat
│   │   │   └── settings.gradle
│   │   ├── app.json
│   │   ├── babel.config.js
│   │   ├── gesture-handler.js
│   │   ├── gesture-handler.native.js
│   │   ├── index.js
│   │   ├── ios/
│   │   │   ├── .xcode.env
│   │   │   ├── Podfile
│   │   │   ├── SampleApp/
│   │   │   │   ├── AppDelegate.swift
│   │   │   │   ├── Images.xcassets/
│   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Info.plist
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── PrivacyInfo.xcprivacy
│   │   │   ├── SampleApp.xcodeproj/
│   │   │   │   ├── project.pbxproj
│   │   │   │   └── xcshareddata/
│   │   │   │       └── xcschemes/
│   │   │   │           └── SampleApp.xcscheme
│   │   │   └── SampleApp.xcworkspace/
│   │   │       ├── contents.xcworkspacedata
│   │   │       └── xcshareddata/
│   │   │           └── WorkspaceSettings.xcsettings
│   │   ├── jest.config.js
│   │   ├── metro.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── assets/
│   │   │   │   └── icons/
│   │   │   │       ├── AccountCircle.tsx
│   │   │   │       ├── AddComment.tsx
│   │   │   │       ├── AiIcon.tsx
│   │   │   │       ├── ArrowBack.tsx
│   │   │   │       ├── Block.tsx
│   │   │   │       ├── Builder.tsx
│   │   │   │       ├── Call.tsx
│   │   │   │       ├── CallFill.tsx
│   │   │   │       ├── Chat.tsx
│   │   │   │       ├── Chatfill.tsx
│   │   │   │       ├── CheckFill.tsx
│   │   │   │       ├── Close.tsx
│   │   │   │       ├── Delete.tsx
│   │   │   │       ├── Flash.tsx
│   │   │   │       ├── Group.tsx
│   │   │   │       ├── GroupAdd.tsx
│   │   │   │       ├── GroupFill.tsx
│   │   │   │       ├── Info.tsx
│   │   │   │       ├── InfoIcon.tsx
│   │   │   │       ├── Logout.tsx
│   │   │   │       ├── Person.tsx
│   │   │   │       ├── PersonAdd.tsx
│   │   │   │       ├── PersonFill.tsx
│   │   │   │       ├── PersonOff.tsx
│   │   │   │       ├── Reset.tsx
│   │   │   │       ├── UserEmptyIcon.tsx
│   │   │   │       └── VideoCam.tsx
│   │   │   ├── components/
│   │   │   │   ├── AIAgent/
│   │   │   │   │   └── AIAgents.tsx
│   │   │   │   ├── calls/
│   │   │   │   │   ├── CallDetailHelper.tsx
│   │   │   │   │   ├── CallDetails.tsx
│   │   │   │   │   ├── CallHistory.tsx
│   │   │   │   │   ├── CallLogDetailHeader.tsx
│   │   │   │   │   ├── CallParticipants.tsx
│   │   │   │   │   ├── CallRecordings.tsx
│   │   │   │   │   ├── Calls.tsx
│   │   │   │   │   └── icons/
│   │   │   │   │       ├── call-end-fill.tsx
│   │   │   │   │       ├── call-end.tsx
│   │   │   │   │       ├── call-fill.tsx
│   │   │   │   │       ├── call-log-fill.tsx
│   │   │   │   │       ├── call-log.tsx
│   │   │   │   │       ├── call-made-fill.tsx
│   │   │   │   │       ├── call-made.tsx
│   │   │   │   │       ├── call-missed-fill.tsx
│   │   │   │   │       ├── call-missed-outgoing-fill.tsx
│   │   │   │   │       ├── call-missed-outgoing.tsx
│   │   │   │   │       ├── call-missed.tsx
│   │   │   │   │       ├── call-received-fill.tsx
│   │   │   │   │       ├── call-received.tsx
│   │   │   │   │       ├── call.tsx
│   │   │   │   │       ├── cancel-fill.tsx
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       └── play-arrow.tsx
│   │   │   │   ├── conversations/
│   │   │   │   │   ├── helper/
│   │   │   │   │   │   └── GroupListeners.ts
│   │   │   │   │   └── screens/
│   │   │   │   │       ├── AddMember.tsx
│   │   │   │   │       ├── AddMemberStyles.tsx
│   │   │   │   │       ├── BannedMember.tsx
│   │   │   │   │       ├── BannedMemberStyles.tsx
│   │   │   │   │       ├── Conversations.tsx
│   │   │   │   │       ├── CreateConversation.tsx
│   │   │   │   │       ├── GroupInfo.tsx
│   │   │   │   │       ├── GroupInfoStyles.tsx
│   │   │   │   │       ├── Messages.tsx
│   │   │   │   │       ├── OngoingCallScreen.tsx
│   │   │   │   │       ├── SearchMessages.tsx
│   │   │   │   │       ├── ThreadView.tsx
│   │   │   │   │       ├── TransferOwnership.tsx
│   │   │   │   │       ├── TransferOwnershipStyles.tsx
│   │   │   │   │       ├── UserInfo.tsx
│   │   │   │   │       ├── UserInfoStyles.tsx
│   │   │   │   │       ├── ViewMembers.tsx
│   │   │   │   │       └── qr_screen.tsx
│   │   │   │   ├── groups/
│   │   │   │   │   ├── GroupHelper.tsx
│   │   │   │   │   ├── Groups.tsx
│   │   │   │   │   └── styles.ts
│   │   │   │   ├── login/
│   │   │   │   │   ├── AppCredentials.tsx
│   │   │   │   │   ├── SampleUser.tsx
│   │   │   │   │   └── Skeleton.tsx
│   │   │   │   └── users/
│   │   │   │       └── Users.tsx
│   │   │   ├── config/
│   │   │   │   ├── config.json
│   │   │   │   └── store.ts
│   │   │   ├── declarations.d.ts
│   │   │   ├── hooks/
│   │   │   │   ├── useGroupMemberStatus.ts
│   │   │   │   └── useIsKeyboardVisible.ts
│   │   │   ├── navigation/
│   │   │   │   ├── AuthContext.tsx
│   │   │   │   ├── BottomTabNavigator.tsx
│   │   │   │   ├── NavigationService.ts
│   │   │   │   ├── RootStackNavigator.tsx
│   │   │   │   └── types.ts
│   │   │   └── utils/
│   │   │       ├── ActiveChatContext.tsx
│   │   │       ├── AppConstants.tsx
│   │   │       ├── CommonUtils.ts
│   │   │       ├── TooltipMenu.tsx
│   │   │       ├── helper.ts
│   │   │       └── themeTypography.ts
│   │   └── tsconfig.json
│   ├── SampleAppAI/
│   │   ├── .bundle/
│   │   │   └── config
│   │   ├── .eslintrc.js
│   │   ├── .gitignore
│   │   ├── .prettierrc.js
│   │   ├── .watchmanconfig
│   │   ├── App.tsx
│   │   ├── AppErrorBoundary.tsx
│   │   ├── Gemfile
│   │   ├── README.md
│   │   ├── android/
│   │   │   ├── app/
│   │   │   │   ├── build.gradle
│   │   │   │   ├── debug.keystore
│   │   │   │   ├── proguard-rules.pro
│   │   │   │   └── src/
│   │   │   │       └── main/
│   │   │   │           ├── AndroidManifest.xml
│   │   │   │           ├── java/
│   │   │   │           │   └── com/
│   │   │   │           │       └── cometchat/
│   │   │   │           │           └── ai/
│   │   │   │           │               └── sampleapp/
│   │   │   │           │                   ├── MainActivity.kt
│   │   │   │           │                   └── MainApplication.kt
│   │   │   │           └── res/
│   │   │   │               ├── drawable/
│   │   │   │               │   └── rn_edit_text_material.xml
│   │   │   │               └── values/
│   │   │   │                   ├── colors.xml
│   │   │   │                   ├── strings.xml
│   │   │   │                   └── styles.xml
│   │   │   ├── build.gradle
│   │   │   ├── gradle/
│   │   │   │   └── wrapper/
│   │   │   │       ├── gradle-wrapper.jar
│   │   │   │       └── gradle-wrapper.properties
│   │   │   ├── gradle.properties
│   │   │   ├── gradlew
│   │   │   ├── gradlew.bat
│   │   │   └── settings.gradle
│   │   ├── app.json
│   │   ├── babel.config.js
│   │   ├── gesture-handler.js
│   │   ├── gesture-handler.native.js
│   │   ├── index.js
│   │   ├── ios/
│   │   │   ├── .xcode.env
│   │   │   ├── Podfile
│   │   │   ├── SampleApp/
│   │   │   │   ├── AppDelegate.swift
│   │   │   │   ├── Images.xcassets/
│   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Info.plist
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── PrivacyInfo.xcprivacy
│   │   │   ├── SampleApp.xcodeproj/
│   │   │   │   ├── project.pbxproj
│   │   │   │   └── xcshareddata/
│   │   │   │       └── xcschemes/
│   │   │   │           └── SampleApp.xcscheme
│   │   │   └── SampleApp.xcworkspace/
│   │   │       ├── contents.xcworkspacedata
│   │   │       └── xcshareddata/
│   │   │           └── WorkspaceSettings.xcsettings
│   │   ├── jest.config.js
│   │   ├── metro.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── assets/
│   │   │   │   └── icons/
│   │   │   │       ├── AccountCircle.tsx
│   │   │   │       ├── AddComment.tsx
│   │   │   │       ├── ArrowBack.tsx
│   │   │   │       ├── Block.tsx
│   │   │   │       ├── Call.tsx
│   │   │   │       ├── CallFill.tsx
│   │   │   │       ├── Chat.tsx
│   │   │   │       ├── Chatfill.tsx
│   │   │   │       ├── CheckFill.tsx
│   │   │   │       ├── Close.tsx
│   │   │   │       ├── Delete.tsx
│   │   │   │       ├── Group.tsx
│   │   │   │       ├── GroupAdd.tsx
│   │   │   │       ├── GroupFill.tsx
│   │   │   │       ├── Info.tsx
│   │   │   │       ├── InfoIcon.tsx
│   │   │   │       ├── Logout.tsx
│   │   │   │       ├── Person.tsx
│   │   │   │       ├── PersonAdd.tsx
│   │   │   │       ├── PersonFill.tsx
│   │   │   │       ├── PersonOff.tsx
│   │   │   │       ├── UserEmptyIcon.tsx
│   │   │   │       └── VideoCam.tsx
│   │   │   ├── components/
│   │   │   │   ├── AIAgents.tsx
│   │   │   │   ├── Messages.tsx
│   │   │   │   └── login/
│   │   │   │       ├── AppCredentials.tsx
│   │   │   │       ├── SampleUser.tsx
│   │   │   │       └── Skeleton.tsx
│   │   │   ├── declarations.d.ts
│   │   │   ├── navigation/
│   │   │   │   ├── AuthContext.tsx
│   │   │   │   ├── BottomTabNavigator.tsx
│   │   │   │   ├── NavigationService.ts
│   │   │   │   ├── RootStackNavigator.tsx
│   │   │   │   └── types.ts
│   │   │   └── utils/
│   │   │       ├── ActiveChatContext.tsx
│   │   │       ├── AppConstants.tsx
│   │   │       ├── CommonUtils.ts
│   │   │       ├── TooltipMenu.tsx
│   │   │       └── helper.ts
│   │   └── tsconfig.json
│   ├── SampleAppExpo/
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   ├── App.tsx
│   │   ├── README.md
│   │   ├── app.json
│   │   ├── gesture-handler.js
│   │   ├── gesture-handler.native.js
│   │   ├── index.js
│   │   ├── metro.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── assets/
│   │   │   │   └── icons/
│   │   │   │       ├── AccountCircle.tsx
│   │   │   │       ├── AddComment.tsx
│   │   │   │       ├── AiIcon.tsx
│   │   │   │       ├── ArrowBack.tsx
│   │   │   │       ├── Block.tsx
│   │   │   │       ├── Builder.tsx
│   │   │   │       ├── Call.tsx
│   │   │   │       ├── CallFill.tsx
│   │   │   │       ├── Chat.tsx
│   │   │   │       ├── Chatfill.tsx
│   │   │   │       ├── CheckFill.tsx
│   │   │   │       ├── Close.tsx
│   │   │   │       ├── Delete.tsx
│   │   │   │       ├── Flash.tsx
│   │   │   │       ├── Group.tsx
│   │   │   │       ├── GroupAdd.tsx
│   │   │   │       ├── GroupFill.tsx
│   │   │   │       ├── Info.tsx
│   │   │   │       ├── InfoIcon.tsx
│   │   │   │       ├── Logout.tsx
│   │   │   │       ├── Person.tsx
│   │   │   │       ├── PersonAdd.tsx
│   │   │   │       ├── PersonFill.tsx
│   │   │   │       ├── PersonOff.tsx
│   │   │   │       ├── Reset.tsx
│   │   │   │       ├── UserEmptyIcon.tsx
│   │   │   │       └── VideoCam.tsx
│   │   │   ├── components/
│   │   │   │   ├── AIAgent/
│   │   │   │   │   └── AIAgents.tsx
│   │   │   │   ├── calls/
│   │   │   │   │   ├── CallDetailHelper.tsx
│   │   │   │   │   ├── CallDetails.tsx
│   │   │   │   │   ├── CallHistory.tsx
│   │   │   │   │   ├── CallLogDetailHeader.tsx
│   │   │   │   │   ├── CallParticipants.tsx
│   │   │   │   │   ├── CallRecordings.tsx
│   │   │   │   │   ├── Calls.tsx
│   │   │   │   │   └── icons/
│   │   │   │   │       ├── call-end-fill.tsx
│   │   │   │   │       ├── call-end.tsx
│   │   │   │   │       ├── call-fill.tsx
│   │   │   │   │       ├── call-log-fill.tsx
│   │   │   │   │       ├── call-log.tsx
│   │   │   │   │       ├── call-made-fill.tsx
│   │   │   │   │       ├── call-made.tsx
│   │   │   │   │       ├── call-missed-fill.tsx
│   │   │   │   │       ├── call-missed-outgoing-fill.tsx
│   │   │   │   │       ├── call-missed-outgoing.tsx
│   │   │   │   │       ├── call-missed.tsx
│   │   │   │   │       ├── call-received-fill.tsx
│   │   │   │   │       ├── call-received.tsx
│   │   │   │   │       ├── call.tsx
│   │   │   │   │       ├── cancel-fill.tsx
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       └── play-arrow.tsx
│   │   │   │   ├── conversations/
│   │   │   │   │   ├── helper/
│   │   │   │   │   │   └── GroupListeners.ts
│   │   │   │   │   └── screens/
│   │   │   │   │       ├── AddMember.tsx
│   │   │   │   │       ├── AddMemberStyles.tsx
│   │   │   │   │       ├── BannedMember.tsx
│   │   │   │   │       ├── BannedMemberStyles.tsx
│   │   │   │   │       ├── Conversations.tsx
│   │   │   │   │       ├── CreateConversation.tsx
│   │   │   │   │       ├── GroupInfo.tsx
│   │   │   │   │       ├── GroupInfoStyles.tsx
│   │   │   │   │       ├── Messages.tsx
│   │   │   │   │       ├── OngoingCallScreen.tsx
│   │   │   │   │       ├── SearchMessages.tsx
│   │   │   │   │       ├── ThreadView.tsx
│   │   │   │   │       ├── TransferOwnership.tsx
│   │   │   │   │       ├── TransferOwnershipStyles.tsx
│   │   │   │   │       ├── UserInfo.tsx
│   │   │   │   │       ├── UserInfoStyles.tsx
│   │   │   │   │       ├── ViewMembers.tsx
│   │   │   │   │       └── qr_screen.tsx
│   │   │   │   ├── groups/
│   │   │   │   │   ├── GroupHelper.tsx
│   │   │   │   │   ├── Groups.tsx
│   │   │   │   │   └── styles.ts
│   │   │   │   ├── login/
│   │   │   │   │   ├── AppCredentials.tsx
│   │   │   │   │   ├── SampleUser.tsx
│   │   │   │   │   └── Skeleton.tsx
│   │   │   │   └── users/
│   │   │   │       └── Users.tsx
│   │   │   ├── config/
│   │   │   │   ├── config.json
│   │   │   │   └── store.ts
│   │   │   ├── declarations.d.ts
│   │   │   ├── hooks/
│   │   │   │   ├── useGroupMemberStatus.ts
│   │   │   │   └── useIsKeyboardVisible.ts
│   │   │   ├── navigation/
│   │   │   │   ├── AuthContext.tsx
│   │   │   │   ├── BottomTabNavigator.tsx
│   │   │   │   ├── NavigationService.ts
│   │   │   │   ├── RootStackNavigator.tsx
│   │   │   │   └── types.ts
│   │   │   └── utils/
│   │   │       ├── ActiveChatContext.tsx
│   │   │       ├── AppConstants.tsx
│   │   │       ├── CommonUtils.ts
│   │   │       ├── TooltipMenu.tsx
│   │   │       ├── helper.ts
│   │   │       └── themeTypography.ts
│   │   └── tsconfig.json
│   └── SampleAppWithPushNotifications/
│       ├── .bundle/
│       │   └── config
│       ├── .eslintrc.js
│       ├── .gitignore
│       ├── .prettierrc.js
│       ├── .vscode/
│       │   └── settings.json
│       ├── .watchmanconfig
│       ├── App.tsx
│       ├── AppErrorBoundary.tsx
│       ├── Gemfile
│       ├── README.md
│       ├── __tests__/
│       │   └── App.test.tsx
│       ├── android/
│       │   ├── app/
│       │   │   ├── build.gradle
│       │   │   ├── cometchat_team_messanger.jks
│       │   │   ├── debug.keystore
│       │   │   ├── google-services.json
│       │   │   ├── proguard-rules.pro
│       │   │   └── src/
│       │   │       └── main/
│       │   │           ├── AndroidManifest.xml
│       │   │           ├── java/
│       │   │           │   └── com/
│       │   │           │       └── sampleappwithpushnotifications/
│       │   │           │           ├── MainActivity.kt
│       │   │           │           └── MainApplication.kt
│       │   │           └── res/
│       │   │               ├── drawable/
│       │   │               │   └── rn_edit_text_material.xml
│       │   │               └── values/
│       │   │                   ├── colors.xml
│       │   │                   ├── strings.xml
│       │   │                   └── styles.xml
│       │   ├── build.gradle
│       │   ├── gradle/
│       │   │   └── wrapper/
│       │   │       ├── gradle-wrapper.jar
│       │   │       └── gradle-wrapper.properties
│       │   ├── gradle.properties
│       │   ├── gradlew
│       │   ├── gradlew.bat
│       │   └── settings.gradle
│       ├── app.json
│       ├── babel.config.js
│       ├── cometchat_team_messanger.jks
│       ├── gesture-handler.js
│       ├── gesture-handler.native.js
│       ├── google-services.json
│       ├── index.js
│       ├── ios/
│       │   ├── .xcode.env
│       │   ├── GoogleService-Info.plist
│       │   ├── Podfile
│       │   ├── SampleAppWithPushNotifications/
│       │   │   ├── AppDelegate.swift
│       │   │   ├── Images.xcassets/
│       │   │   │   ├── AppIcon.appiconset/
│       │   │   │   │   └── Contents.json
│       │   │   │   └── Contents.json
│       │   │   ├── Info.plist
│       │   │   ├── LaunchScreen.storyboard
│       │   │   ├── PrivacyInfo.xcprivacy
│       │   │   ├── SampleAppWithPushNotifications-Bridging-Header.h
│       │   │   ├── SampleAppWithPushNotifications.entitlements
│       │   │   └── SampleAppWithPushNotificationsRelease.entitlements
│       │   ├── SampleAppWithPushNotifications-Bridging-Header.h
│       │   ├── SampleAppWithPushNotifications.xcodeproj/
│       │   │   ├── project.pbxproj
│       │   │   └── xcshareddata/
│       │   │       └── xcschemes/
│       │   │           └── SampleAppWithPushNotifications.xcscheme
│       │   └── SampleAppWithPushNotifications.xcworkspace/
│       │       ├── contents.xcworkspacedata
│       │       └── xcshareddata/
│       │           └── WorkspaceSettings.xcsettings
│       ├── jest.config.js
│       ├── metro.config.js
│       ├── package.json
│       ├── src/
│       │   ├── assets/
│       │   │   └── icons/
│       │   │       ├── AccountCircle.tsx
│       │   │       ├── AddComment.tsx
│       │   │       ├── AiIcon.tsx
│       │   │       ├── ArrowBack.tsx
│       │   │       ├── Block.tsx
│       │   │       ├── Builder.tsx
│       │   │       ├── Call.tsx
│       │   │       ├── CallFill.tsx
│       │   │       ├── Chat.tsx
│       │   │       ├── Chatfill.tsx
│       │   │       ├── CheckFill.tsx
│       │   │       ├── Close.tsx
│       │   │       ├── Delete.tsx
│       │   │       ├── Flash.tsx
│       │   │       ├── Group.tsx
│       │   │       ├── GroupAdd.tsx
│       │   │       ├── GroupFill.tsx
│       │   │       ├── Info.tsx
│       │   │       ├── InfoIcon.tsx
│       │   │       ├── Logout.tsx
│       │   │       ├── Person.tsx
│       │   │       ├── PersonAdd.tsx
│       │   │       ├── PersonFill.tsx
│       │   │       ├── PersonOff.tsx
│       │   │       ├── Reset.tsx
│       │   │       ├── UserEmptyIcon.tsx
│       │   │       └── VideoCam.tsx
│       │   ├── components/
│       │   │   ├── AIAgent/
│       │   │   │   └── AIAgents.tsx
│       │   │   ├── calls/
│       │   │   │   ├── CallDetailHelper.tsx
│       │   │   │   ├── CallDetails.tsx
│       │   │   │   ├── CallHistory.tsx
│       │   │   │   ├── CallLogDetailHeader.tsx
│       │   │   │   ├── CallParticipants.tsx
│       │   │   │   ├── CallRecordings.tsx
│       │   │   │   ├── Calls.tsx
│       │   │   │   └── icons/
│       │   │   │       ├── call-end-fill.tsx
│       │   │   │       ├── call-end.tsx
│       │   │   │       ├── call-fill.tsx
│       │   │   │       ├── call-log-fill.tsx
│       │   │   │       ├── call-log.tsx
│       │   │   │       ├── call-made-fill.tsx
│       │   │   │       ├── call-made.tsx
│       │   │   │       ├── call-missed-fill.tsx
│       │   │   │       ├── call-missed-outgoing-fill.tsx
│       │   │   │       ├── call-missed-outgoing.tsx
│       │   │   │       ├── call-missed.tsx
│       │   │   │       ├── call-received-fill.tsx
│       │   │   │       ├── call-received.tsx
│       │   │   │       ├── call.tsx
│       │   │   │       ├── cancel-fill.tsx
│       │   │   │       ├── index.tsx
│       │   │   │       └── play-arrow.tsx
│       │   │   ├── conversations/
│       │   │   │   ├── helper/
│       │   │   │   │   └── GroupListeners.ts
│       │   │   │   └── screens/
│       │   │   │       ├── AddMember.tsx
│       │   │   │       ├── AddMemberStyles.tsx
│       │   │   │       ├── BannedMember.tsx
│       │   │   │       ├── BannedMemberStyles.tsx
│       │   │   │       ├── Conversations.tsx
│       │   │   │       ├── CreateConversation.tsx
│       │   │   │       ├── GroupInfo.tsx
│       │   │   │       ├── GroupInfoStyles.tsx
│       │   │   │       ├── Messages.tsx
│       │   │   │       ├── OngoingCallScreen.tsx
│       │   │   │       ├── SearchMessages.tsx
│       │   │   │       ├── ThreadView.tsx
│       │   │   │       ├── TransferOwnership.tsx
│       │   │   │       ├── TransferOwnershipStyles.tsx
│       │   │   │       ├── UserInfo.tsx
│       │   │   │       ├── UserInfoStyles.tsx
│       │   │   │       ├── ViewMembers.tsx
│       │   │   │       └── qr_screen.tsx
│       │   │   ├── groups/
│       │   │   │   ├── GroupHelper.tsx
│       │   │   │   ├── Groups.tsx
│       │   │   │   └── styles.ts
│       │   │   ├── login/
│       │   │   │   ├── AppCredentials.tsx
│       │   │   │   ├── SampleUser.tsx
│       │   │   │   └── Skeleton.tsx
│       │   │   └── users/
│       │   │       └── Users.tsx
│       │   ├── config/
│       │   │   ├── config.json
│       │   │   └── store.ts
│       │   ├── declarations.d.ts
│       │   ├── hooks/
│       │   │   ├── useGroupMemberStatus.ts
│       │   │   └── useIsKeyboardVisible.ts
│       │   ├── navigation/
│       │   │   ├── AuthContext.tsx
│       │   │   ├── BottomTabNavigator.tsx
│       │   │   ├── NavigationService.ts
│       │   │   ├── RootStackNavigator.tsx
│       │   │   └── types.ts
│       │   └── utils/
│       │       ├── ActiveChatContext.tsx
│       │       ├── AppConstants.tsx
│       │       ├── CommonUtils.ts
│       │       ├── PendingCallManager.ts
│       │       ├── PushNotification.tsx
│       │       ├── TooltipMenu.tsx
│       │       ├── VoipNotificationHandler.ts
│       │       ├── helper.ts
│       │       └── themeTypography.ts
│       └── tsconfig.json
└── packages/
    └── ChatUiKit/
        ├── .gitignore
        ├── .prettierrc.json
        ├── CONTRIBUTING.md
        ├── LICENSE.md
        ├── README.md
        ├── SECURITY.md
        ├── SUPPORT.md
        ├── android/
        │   ├── .settings/
        │   │   └── org.eclipse.buildship.core.prefs
        │   ├── build.gradle
        │   ├── gradle/
        │   │   └── wrapper/
        │   │       ├── gradle-wrapper.jar
        │   │       └── gradle-wrapper.properties
        │   ├── gradle.properties
        │   ├── gradlew
        │   ├── gradlew.bat
        │   ├── settings.gradle
        │   └── src/
        │       └── main/
        │           ├── AndroidManifest.xml
        │           ├── java/
        │           │   └── com/
        │           │       ├── reactnativecometchatuikit/
        │           │       │   ├── CometChatImageViewer.java
        │           │       │   ├── CometChatSoundModule.java
        │           │       │   ├── CometChatVideoPlayer.java
        │           │       │   ├── CometChatWebView.java
        │           │       │   ├── CometchatUiKitModule.java
        │           │       │   ├── CometchatUiKitPackage.java
        │           │       │   ├── FileManager.java
        │           │       │   ├── ImageManager.java
        │           │       │   ├── ProximityModule.java
        │           │       │   ├── ReactVideoView.java
        │           │       │   ├── ReactVideoViewManager.java
        │           │       │   ├── RichTextEditorPackage.kt
        │           │       │   ├── RichTextEditorView.kt
        │           │       │   ├── RichTextEditorViewManager.kt
        │           │       │   ├── SoundPlayer.java
        │           │       │   ├── TimeZoneCodeManager.java
        │           │       │   └── WebViewManager.java
        │           │       ├── scalablevideoview/
        │           │       │   ├── BuildConfig.java
        │           │       │   ├── PivotPoint.java
        │           │       │   ├── ScalableType.java
        │           │       │   ├── ScalableVideoView.java
        │           │       │   ├── ScaleManager.java
        │           │       │   └── Size.java
        │           │       └── zipfile/
        │           │           ├── APEZProvider.java
        │           │           ├── APKExpansionSupport.java
        │           │           └── ZipResourceFile.java
        │           └── res/
        │               ├── values/
        │               │   └── attrs.xml
        │               └── xml/
        │                   └── filepaths.xml
        ├── babel.config.js
        ├── ios/
        │   ├── CometChatSoundModule.h
        │   ├── CometChatSoundModule.m
        │   ├── CometchatUiKit.h
        │   ├── CometchatUiKit.mm
        │   ├── CometchatUiKit.xcodeproj/
        │   │   ├── project.pbxproj
        │   │   └── project.xcworkspace/
        │   │       ├── contents.xcworkspacedata
        │   │       └── xcshareddata/
        │   │           └── IDEWorkspaceChecks.plist
        │   ├── CommonUtil.h
        │   ├── CommonUtil.m
        │   ├── FileManager.h
        │   ├── FileManager.m
        │   ├── Proximity.h
        │   ├── Proximity.m
        │   ├── RichTextEditorView.swift
        │   ├── RichTextEditorViewManager.m
        │   ├── RichTextEditorViewManager.swift
        │   ├── SoundPlayer.h
        │   ├── SoundPlayer.m
        │   ├── TimeZoneCodeManager.h
        │   ├── TimeZoneCodeManager.m
        │   ├── ToolbarIcons.swift
        │   ├── Video/
        │   │   ├── CCRCTVideo.h
        │   │   ├── CCRCTVideo.m
        │   │   ├── CCRCTVideoManager.h
        │   │   ├── CCRCTVideoManager.m
        │   │   ├── CCRCTVideoPlayerViewController.h
        │   │   ├── CCRCTVideoPlayerViewController.m
        │   │   ├── CCRCTVideoPlayerViewControllerDelegate.h
        │   │   ├── UIView+FindUIViewController.h
        │   │   └── UIView+FindUIViewController.m
        │   ├── VideoManager.h
        │   ├── VideoManager.m
        │   ├── VideoPickerModule.h
        │   ├── VideoPickerModule.mm
        │   ├── WebViewManager.h
        │   └── WebViewManager.m
        ├── package.json
        ├── packager.js
        ├── react-native-cometchat-ui-kit.podspec
        ├── src/
        │   ├── CometChatAIAssistantChatHistory/
        │   │   ├── CometChatAIAssistantChatHistory.tsx
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   └── style.ts
        │   ├── CometChatCompactMessageComposer/
        │   │   ├── CometChatCompactMessageComposer.tsx
        │   │   ├── SingleLineTextComposerConfiguration.tsx
        │   │   ├── heightUtils.ts
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── styles.ts
        │   ├── CometChatConversations/
        │   │   ├── CometChatConversations.tsx
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── style.ts
        │   ├── CometChatGroupMembers/
        │   │   ├── CometChatGroupMembers.tsx
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── style.ts
        │   ├── CometChatGroups/
        │   │   ├── CometChatGroups.tsx
        │   │   ├── GroupsStyle.ts
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── style.ts
        │   ├── CometChatMessageComposer/
        │   │   ├── CometChatMessageComposer.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── styles.tsx
        │   ├── CometChatMessageHeader/
        │   │   ├── CometChatMessageHeader.tsx
        │   │   ├── index.ts
        │   │   ├── listners.ts
        │   │   └── styles.ts
        │   ├── CometChatMessageInformation/
        │   │   ├── CometChatMessageInformation.tsx
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── styles.ts
        │   ├── CometChatMessageList/
        │   │   ├── CometChatMessageList.tsx
        │   │   ├── Skeleton.tsx
        │   │   ├── components/
        │   │   │   ├── MessageListItem.tsx
        │   │   │   ├── MessageModals.tsx
        │   │   │   ├── MessageOptionsSheet.tsx
        │   │   │   └── ReactionModals.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── style.ts
        │   ├── CometChatRichTextEditor/
        │   │   ├── RichTextEditorViewNativeComponent.ts
        │   │   ├── index.tsx
        │   │   └── types.ts
        │   ├── CometChatSearch/
        │   │   ├── CometChatSearch.tsx
        │   │   ├── SearchConstants.ts
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   └── style.ts
        │   ├── CometChatThreadHeader/
        │   │   ├── CometChatThreadHeader.tsx
        │   │   ├── Header.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── style.ts
        │   ├── CometChatUsers/
        │   │   ├── CometChatUsers.tsx
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   └── style.ts
        │   ├── calls/
        │   │   ├── CallEvents.ts
        │   │   ├── CallUtils.ts
        │   │   ├── CallingConfiguration.ts
        │   │   ├── CallingExtension.tsx
        │   │   ├── CallingExtensionDecorator.tsx
        │   │   ├── CallingPackage.ts
        │   │   ├── CometChatCallBubble/
        │   │   │   ├── CometChatCallBubble.tsx
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── styles.ts
        │   │   ├── CometChatCallButtons/
        │   │   │   ├── CometChatCallButtonConfiguration.ts
        │   │   │   ├── CometChatCallButtons.tsx
        │   │   │   ├── index.ts
        │   │   │   └── style.ts
        │   │   ├── CometChatCallLogs/
        │   │   │   ├── CometChatCallLogs.tsx
        │   │   │   ├── Skeleton.tsx
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── style.ts
        │   │   ├── CometChatIncomingCall/
        │   │   │   ├── CometChatIncomingCall.tsx
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── style.ts
        │   │   ├── CometChatOngoingCall/
        │   │   │   ├── CometChatOngoingCall.tsx
        │   │   │   └── index.ts
        │   │   ├── CometChatOutgoingCall/
        │   │   │   ├── CometChatOutgoingCall.tsx
        │   │   │   ├── OutgoingCallConfiguration.ts
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── styles.ts
        │   │   ├── index.ts
        │   │   └── resources/
        │   │       └── index.ts
        │   ├── extensions/
        │   │   ├── CollaborativeBubble/
        │   │   │   ├── CometChatCollaborativeBubble.tsx
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── style.ts
        │   │   ├── CollaborativeDocument/
        │   │   │   ├── CollaborativeDocumentExtension.tsx
        │   │   │   ├── CollaborativeDocumentExtensionDecorator.tsx
        │   │   │   ├── index.ts
        │   │   │   └── resources/
        │   │   │       └── index.ts
        │   │   ├── CollaborativeWhiteboard/
        │   │   │   ├── CollaborativeWhiteboardExtension.tsx
        │   │   │   ├── CollaborativeWhiteboardExtensionDecorator.tsx
        │   │   │   ├── index.ts
        │   │   │   └── resources/
        │   │   │       └── index.ts
        │   │   ├── ExtensionConstants.tsx
        │   │   ├── ExtensionModerator.tsx
        │   │   ├── LinkPreview/
        │   │   │   ├── LinkPreviewBubble.tsx
        │   │   │   ├── LinkPreviewExtension.tsx
        │   │   │   ├── LinkPreviewExtensionDecorator.tsx
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── style.ts
        │   │   ├── MessageTranslation/
        │   │   │   ├── MessageTranslationBubble.tsx
        │   │   │   ├── MessageTranslationDecorator.tsx
        │   │   │   ├── MessageTranslationExtension.tsx
        │   │   │   ├── index.ts
        │   │   │   └── resources/
        │   │   │       └── index.ts
        │   │   ├── Polls/
        │   │   │   ├── Header.tsx
        │   │   │   ├── Polls.tsx
        │   │   │   ├── PollsBubble.tsx
        │   │   │   ├── PollsConfigurations.ts
        │   │   │   ├── PollsDecorator.tsx
        │   │   │   ├── PollsExtension.tsx
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── style.ts
        │   │   ├── Stickers/
        │   │   │   ├── CometChatStickerKeyboard/
        │   │   │   │   ├── CometChatStickerKeyboard.tsx
        │   │   │   │   ├── Skeleton.tsx
        │   │   │   │   ├── StickerKeyboardConfiguration.ts
        │   │   │   │   ├── hooks.ts
        │   │   │   │   ├── index.ts
        │   │   │   │   └── style.ts
        │   │   │   ├── StickerConfiguration.ts
        │   │   │   ├── StickersBubble.tsx
        │   │   │   ├── StickersExtension.ts
        │   │   │   ├── StickersExtensionDecorator.tsx
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── style.ts
        │   │   ├── ThumbnailGeneration/
        │   │   │   ├── ThumbnailGenerationDecorator.tsx
        │   │   │   ├── ThumbnailGenerationExtension.tsx
        │   │   │   ├── index.ts
        │   │   │   └── resources/
        │   │   │       └── index.ts
        │   │   └── index.ts
        │   ├── imageresolver.d.ts
        │   ├── index.ts
        │   ├── shared/
        │   │   ├── CometChatUiKit/
        │   │   │   ├── CometChatUIKit.ts
        │   │   │   ├── CometChatUIKitHelper.ts
        │   │   │   ├── UIKitSettings.ts
        │   │   │   └── index.ts
        │   │   ├── assets/
        │   │   │   └── images/
        │   │   │       └── index.ts
        │   │   ├── base/
        │   │   │   ├── BaseStyle.ts
        │   │   │   ├── BorderStyle.ts
        │   │   │   ├── FontStyle.ts
        │   │   │   ├── ShadowStyle.ts
        │   │   │   ├── Types.ts
        │   │   │   ├── index.ts
        │   │   │   └── vars.ts
        │   │   ├── constants/
        │   │   │   └── UIKitConstants.ts
        │   │   ├── events/
        │   │   │   ├── CometChatMessageEvents/
        │   │   │   │   └── index.ts
        │   │   │   ├── CometChatUIEventHandler/
        │   │   │   │   ├── CometChatUIEventHandler.ts
        │   │   │   │   └── Listener.ts
        │   │   │   ├── CometChatUIEvents.ts
        │   │   │   ├── ListenerInitializer.ts
        │   │   │   ├── conversations.ts
        │   │   │   ├── groups.ts
        │   │   │   ├── index.ts
        │   │   │   └── messages.ts
        │   │   ├── formatters/
        │   │   │   ├── CometChatMentionsFormatter/
        │   │   │   │   ├── CometChatMentionsFormatter.tsx
        │   │   │   │   ├── MentionTextStyle.ts
        │   │   │   │   └── index.ts
        │   │   │   ├── CometChatRichTextFormatter/
        │   │   │   │   └── index.tsx
        │   │   │   ├── CometChatTextFormatter.ts
        │   │   │   ├── CometChatUrlsFormatter/
        │   │   │   │   └── index.tsx
        │   │   │   └── index.ts
        │   │   ├── framework/
        │   │   │   ├── ChatConfigurator.ts
        │   │   │   ├── DataSource.ts
        │   │   │   ├── DataSourceDecorator.tsx
        │   │   │   ├── ExtensionsDataSource.tsx
        │   │   │   ├── MessageDataSource.tsx
        │   │   │   ├── index.ts
        │   │   │   └── resources/
        │   │   │       └── index.ts
        │   │   ├── helper/
        │   │   │   ├── LocalizedDateHelper.ts
        │   │   │   ├── Toast.tsx
        │   │   │   ├── composerHelpers.ts
        │   │   │   ├── dateHelper.ts
        │   │   │   ├── functions.js
        │   │   │   ├── helperFunctions.ts
        │   │   │   ├── types/
        │   │   │   │   └── index.ts
        │   │   │   ├── useKeyboard.tsx
        │   │   │   └── useLocalizedDateHook.tsx
        │   │   ├── icons/
        │   │   │   ├── Icon.tsx
        │   │   │   ├── components/
        │   │   │   │   ├── ListItemCheck.tsx
        │   │   │   │   ├── StickerBase-icon.tsx
        │   │   │   │   ├── account-circle-fill.tsx
        │   │   │   │   ├── account-circle.tsx
        │   │   │   │   ├── activity.tsx
        │   │   │   │   ├── add-a-photo-fill.tsx
        │   │   │   │   ├── add-a-photo.tsx
        │   │   │   │   ├── add-box-fill.tsx
        │   │   │   │   ├── add-box.tsx
        │   │   │   │   ├── add-call-fill.tsx
        │   │   │   │   ├── add-call.tsx
        │   │   │   │   ├── add-circle-fill.tsx
        │   │   │   │   ├── add-circle.tsx
        │   │   │   │   ├── add-comment-fill.tsx
        │   │   │   │   ├── add-comment.tsx
        │   │   │   │   ├── add-fill.tsx
        │   │   │   │   ├── add-reaction-fill.tsx
        │   │   │   │   ├── add-reaction.tsx
        │   │   │   │   ├── add.tsx
        │   │   │   │   ├── ai-chat-history.tsx
        │   │   │   │   ├── ai-conversation-summary-fill.tsx
        │   │   │   │   ├── ai-conversation-summary.tsx
        │   │   │   │   ├── ai-copy-option.tsx
        │   │   │   │   ├── ai-fill.tsx
        │   │   │   │   ├── ai-new-chat.tsx
        │   │   │   │   ├── ai-send-button.tsx
        │   │   │   │   ├── ai-suggest-reply-fill.tsx
        │   │   │   │   ├── ai-suggest-reply.tsx
        │   │   │   │   ├── ai.tsx
        │   │   │   │   ├── alternate-email-fill.tsx
        │   │   │   │   ├── alternate-email.tsx
        │   │   │   │   ├── animals-&-nature.tsx
        │   │   │   │   ├── archive-fill.tsx
        │   │   │   │   ├── archive.tsx
        │   │   │   │   ├── arrow-back-fill.tsx
        │   │   │   │   ├── arrow-back.tsx
        │   │   │   │   ├── arrow-forward-fill.tsx
        │   │   │   │   ├── arrow-forward.tsx
        │   │   │   │   ├── attach-file-fill.tsx
        │   │   │   │   ├── attach-file.tsx
        │   │   │   │   ├── audio-file-type.tsx
        │   │   │   │   ├── bar-chart-fill.tsx
        │   │   │   │   ├── bar-chart.tsx
        │   │   │   │   ├── base-icon.tsx
        │   │   │   │   ├── bedtime-fill.tsx
        │   │   │   │   ├── bedtime.tsx
        │   │   │   │   ├── block-fill.tsx
        │   │   │   │   ├── block.tsx
        │   │   │   │   ├── bookmark-add-fill.tsx
        │   │   │   │   ├── bookmark-add.tsx
        │   │   │   │   ├── bookmark-fill.tsx
        │   │   │   │   ├── bookmark.tsx
        │   │   │   │   ├── calendar-add-on-fill.tsx
        │   │   │   │   ├── calendar-add-on.tsx
        │   │   │   │   ├── calendar-today-fill.tsx
        │   │   │   │   ├── calendar-today.tsx
        │   │   │   │   ├── call-end-fill.tsx
        │   │   │   │   ├── call-end.tsx
        │   │   │   │   ├── call-fill.tsx
        │   │   │   │   ├── call-log-fill.tsx
        │   │   │   │   ├── call-log.tsx
        │   │   │   │   ├── call-made-fill.tsx
        │   │   │   │   ├── call-made.tsx
        │   │   │   │   ├── call-missed-fill.tsx
        │   │   │   │   ├── call-missed-outgoing-fill.tsx
        │   │   │   │   ├── call-missed-outgoing.tsx
        │   │   │   │   ├── call-missed.tsx
        │   │   │   │   ├── call-received-fill.tsx
        │   │   │   │   ├── call-received.tsx
        │   │   │   │   ├── call.tsx
        │   │   │   │   ├── cancel-fill.tsx
        │   │   │   │   ├── cancel.tsx
        │   │   │   │   ├── change-circle-fill.tsx
        │   │   │   │   ├── change-circle.tsx
        │   │   │   │   ├── chat-bot-fill.tsx
        │   │   │   │   ├── chat-bot.tsx
        │   │   │   │   ├── chat-fill.tsx
        │   │   │   │   ├── chat.tsx
        │   │   │   │   ├── check-circle-fill.tsx
        │   │   │   │   ├── check-circle.tsx
        │   │   │   │   ├── check-fill.tsx
        │   │   │   │   ├── check.tsx
        │   │   │   │   ├── chevron-left-fill.tsx
        │   │   │   │   ├── chevron-left.tsx
        │   │   │   │   ├── chevron-right-fill.tsx
        │   │   │   │   ├── chevron-right.tsx
        │   │   │   │   ├── close-fill.tsx
        │   │   │   │   ├── close.tsx
        │   │   │   │   ├── code-blocks.tsx
        │   │   │   │   ├── code.tsx
        │   │   │   │   ├── collaborative-document-fill.tsx
        │   │   │   │   ├── collaborative-document-icon.tsx
        │   │   │   │   ├── collaborative-document.tsx
        │   │   │   │   ├── collaborative-whiteboard-fill.tsx
        │   │   │   │   ├── collaborative-whiteboard-icon.tsx
        │   │   │   │   ├── collaborative-whiteboard.tsx
        │   │   │   │   ├── content-copy-fill.tsx
        │   │   │   │   ├── content-copy.tsx
        │   │   │   │   ├── crop-fill.tsx
        │   │   │   │   ├── crop.tsx
        │   │   │   │   ├── delete-fill.tsx
        │   │   │   │   ├── delete.tsx
        │   │   │   │   ├── description-fill.tsx
        │   │   │   │   ├── description.tsx
        │   │   │   │   ├── document-file-type.tsx
        │   │   │   │   ├── documents.tsx
        │   │   │   │   ├── done-all-fill.tsx
        │   │   │   │   ├── done-all.tsx
        │   │   │   │   ├── download-fill.tsx
        │   │   │   │   ├── download.tsx
        │   │   │   │   ├── edit-calendar-fill.tsx
        │   │   │   │   ├── edit-calendar.tsx
        │   │   │   │   ├── edit-fill.tsx
        │   │   │   │   ├── edit-square-fill.tsx
        │   │   │   │   ├── edit-square.tsx
        │   │   │   │   ├── edit.tsx
        │   │   │   │   ├── empty-search.tsx
        │   │   │   │   ├── empty-state.tsx
        │   │   │   │   ├── error-fill.tsx
        │   │   │   │   ├── error-state.tsx
        │   │   │   │   ├── error.tsx
        │   │   │   │   ├── event-available-fill.tsx
        │   │   │   │   ├── event-available.tsx
        │   │   │   │   ├── event-fill.tsx
        │   │   │   │   ├── event.tsx
        │   │   │   │   ├── favorite-fill.tsx
        │   │   │   │   ├── favorite.tsx
        │   │   │   │   ├── filter-list-fill.tsx
        │   │   │   │   ├── filter-list-off-fill.tsx
        │   │   │   │   ├── filter-list-off.tsx
        │   │   │   │   ├── filter-list.tsx
        │   │   │   │   ├── flags.tsx
        │   │   │   │   ├── flip-camera-ios-fill.tsx
        │   │   │   │   ├── flip-camera-ios.tsx
        │   │   │   │   ├── food-&-drink.tsx
        │   │   │   │   ├── format-bold.tsx
        │   │   │   │   ├── format-italic.tsx
        │   │   │   │   ├── format-list-bulleted.tsx
        │   │   │   │   ├── format-list-numbered.tsx
        │   │   │   │   ├── format-quote.tsx
        │   │   │   │   ├── format-strikethrough.tsx
        │   │   │   │   ├── format-underlined.tsx
        │   │   │   │   ├── forward-fill.tsx
        │   │   │   │   ├── forward.tsx
        │   │   │   │   ├── gif-fill.tsx
        │   │   │   │   ├── gif.tsx
        │   │   │   │   ├── graphic-eq-fill.tsx
        │   │   │   │   ├── graphic-eq.tsx
        │   │   │   │   ├── group-add.tsx
        │   │   │   │   ├── group-fill.tsx
        │   │   │   │   ├── group.tsx
        │   │   │   │   ├── help-fill.tsx
        │   │   │   │   ├── help.tsx
        │   │   │   │   ├── history-fill.tsx
        │   │   │   │   ├── history.tsx
        │   │   │   │   ├── image-file-type.tsx
        │   │   │   │   ├── incoming-audio-fill.tsx
        │   │   │   │   ├── incoming-audio.tsx
        │   │   │   │   ├── incoming-video-fill.tsx
        │   │   │   │   ├── incoming-video.tsx
        │   │   │   │   ├── info-fill.tsx
        │   │   │   │   ├── info.tsx
        │   │   │   │   ├── keep-fill.tsx
        │   │   │   │   ├── keep-off-fill.tsx
        │   │   │   │   ├── keep-off.tsx
        │   │   │   │   ├── keep.tsx
        │   │   │   │   ├── keyboard-arrow-down-fill.tsx
        │   │   │   │   ├── keyboard-arrow-down.tsx
        │   │   │   │   ├── keyboard-arrow-up-fill.tsx
        │   │   │   │   ├── keyboard-arrow-up.tsx
        │   │   │   │   ├── keyboard-fill.tsx
        │   │   │   │   ├── keyboard.tsx
        │   │   │   │   ├── language-fill.tsx
        │   │   │   │   ├── language.tsx
        │   │   │   │   ├── link-fill.tsx
        │   │   │   │   ├── link.tsx
        │   │   │   │   ├── loading-fill.tsx
        │   │   │   │   ├── loading.tsx
        │   │   │   │   ├── location-on-fill.tsx
        │   │   │   │   ├── location-on.tsx
        │   │   │   │   ├── lock-fill.tsx
        │   │   │   │   ├── lock-open-fill.tsx
        │   │   │   │   ├── lock-open.tsx
        │   │   │   │   ├── lock.tsx
        │   │   │   │   ├── logout-fill.tsx
        │   │   │   │   ├── logout.tsx
        │   │   │   │   ├── mail-fill.tsx
        │   │   │   │   ├── mail.tsx
        │   │   │   │   ├── message-blocked.tsx
        │   │   │   │   ├── mic-fill.tsx
        │   │   │   │   ├── mic-off-fill.tsx
        │   │   │   │   ├── mic-off.tsx
        │   │   │   │   ├── mic.tsx
        │   │   │   │   ├── missed-video-call-fill.tsx
        │   │   │   │   ├── missed-video-call.tsx
        │   │   │   │   ├── mood-fill.tsx
        │   │   │   │   ├── mood.tsx
        │   │   │   │   ├── more-vert-fill.tsx
        │   │   │   │   ├── more-vert.tsx
        │   │   │   │   ├── near-me-fill.tsx
        │   │   │   │   ├── near-me.tsx
        │   │   │   │   ├── no-photography-fill.tsx
        │   │   │   │   ├── no-photography.tsx
        │   │   │   │   ├── notifications-fill.tsx
        │   │   │   │   ├── notifications-off-fill.tsx
        │   │   │   │   ├── notifications-off.tsx
        │   │   │   │   ├── notifications.tsx
        │   │   │   │   ├── objects.tsx
        │   │   │   │   ├── outgoing-audio-fill.tsx
        │   │   │   │   ├── outgoing-audio.tsx
        │   │   │   │   ├── outgoing-video-fill.tsx
        │   │   │   │   ├── outgoing-video.tsx
        │   │   │   │   ├── pause-fill.tsx
        │   │   │   │   ├── pause.tsx
        │   │   │   │   ├── pdf-file-type.tsx
        │   │   │   │   ├── person-add-fill.tsx
        │   │   │   │   ├── person-add.tsx
        │   │   │   │   ├── person-fill.tsx
        │   │   │   │   ├── person-off.tsx
        │   │   │   │   ├── person.tsx
        │   │   │   │   ├── phone-in-talk-fill.tsx
        │   │   │   │   ├── phone-in-talk.tsx
        │   │   │   │   ├── phone-incoming-fill.tsx
        │   │   │   │   ├── phone-incoming.tsx
        │   │   │   │   ├── phone-missed-fill.tsx
        │   │   │   │   ├── phone-missed.tsx
        │   │   │   │   ├── phone-outgoing-fill.tsx
        │   │   │   │   ├── phone-outgoing.tsx
        │   │   │   │   ├── photo-camera-fill.tsx
        │   │   │   │   ├── photo-camera.tsx
        │   │   │   │   ├── photo-fill.tsx
        │   │   │   │   ├── photo.tsx
        │   │   │   │   ├── play-arrow-fill.tsx
        │   │   │   │   ├── play-arrow.tsx
        │   │   │   │   ├── play-circle-fill.tsx
        │   │   │   │   ├── play-circle.tsx
        │   │   │   │   ├── poll-Icon.tsx
        │   │   │   │   ├── poll-fill.tsx
        │   │   │   │   ├── poll.tsx
        │   │   │   │   ├── presentation-file-type.tsx
        │   │   │   │   ├── rearrange-fill.tsx
        │   │   │   │   ├── rearrange.tsx
        │   │   │   │   ├── refresh-fill.tsx
        │   │   │   │   ├── refresh.tsx
        │   │   │   │   ├── reply-all-fill.tsx
        │   │   │   │   ├── reply-all.tsx
        │   │   │   │   ├── reply-fill.tsx
        │   │   │   │   ├── reply.tsx
        │   │   │   │   ├── retry-fill.tsx
        │   │   │   │   ├── retry.tsx
        │   │   │   │   ├── right-arrow.tsx
        │   │   │   │   ├── schedule-fill.tsx
        │   │   │   │   ├── schedule.tsx
        │   │   │   │   ├── screen-share-fill.tsx
        │   │   │   │   ├── screen-share.tsx
        │   │   │   │   ├── search-fill.tsx
        │   │   │   │   ├── search.tsx
        │   │   │   │   ├── send-fill.tsx
        │   │   │   │   ├── send.tsx
        │   │   │   │   ├── settings-fill.tsx
        │   │   │   │   ├── settings.tsx
        │   │   │   │   ├── share-fill.tsx
        │   │   │   │   ├── share.tsx
        │   │   │   │   ├── shield-fill.tsx
        │   │   │   │   ├── shield.tsx
        │   │   │   │   ├── smileys-&-people.tsx
        │   │   │   │   ├── spreadsheet-file-type.tsx
        │   │   │   │   ├── star-fill.tsx
        │   │   │   │   ├── star.tsx
        │   │   │   │   ├── sticker-fill.tsx
        │   │   │   │   ├── sticker.tsx
        │   │   │   │   ├── stop-circle-fill.tsx
        │   │   │   │   ├── stop-circle.tsx
        │   │   │   │   ├── stop-fill.tsx
        │   │   │   │   ├── stop-screen-share-fill.tsx
        │   │   │   │   ├── stop-screen-share.tsx
        │   │   │   │   ├── stop.tsx
        │   │   │   │   ├── subdirectory-arrow-left-fill.tsx
        │   │   │   │   ├── subdirectory-arrow-left.tsx
        │   │   │   │   ├── subdirectory-arrow-right-fill.tsx
        │   │   │   │   ├── subdirectory-arrow-right.tsx
        │   │   │   │   ├── sunny-fill.tsx
        │   │   │   │   ├── sunny.tsx
        │   │   │   │   ├── symbols.tsx
        │   │   │   │   ├── text-file-type.tsx
        │   │   │   │   ├── thumb-down-fill.tsx
        │   │   │   │   ├── thumb-down.tsx
        │   │   │   │   ├── thumb-up-fill.tsx
        │   │   │   │   ├── thumb-up.tsx
        │   │   │   │   ├── translate-fill.tsx
        │   │   │   │   ├── translate.tsx
        │   │   │   │   ├── travel-&-places.tsx
        │   │   │   │   ├── unknown-file-type.tsx
        │   │   │   │   ├── unread.tsx
        │   │   │   │   ├── upload-fill.tsx
        │   │   │   │   ├── upload.tsx
        │   │   │   │   ├── user-empty-icon.tsx
        │   │   │   │   ├── video-call-fill.tsx
        │   │   │   │   ├── video-call.tsx
        │   │   │   │   ├── video-file-type.tsx
        │   │   │   │   ├── videocam-fill.tsx
        │   │   │   │   ├── videocam-off-fill.tsx
        │   │   │   │   ├── videocam-off.tsx
        │   │   │   │   ├── videocam.tsx
        │   │   │   │   ├── visibility-off-fill.tsx
        │   │   │   │   ├── visibility-off.tsx
        │   │   │   │   ├── volume-down-fill.tsx
        │   │   │   │   ├── volume-down.tsx
        │   │   │   │   ├── volume-mute-fill.tsx
        │   │   │   │   ├── volume-mute.tsx
        │   │   │   │   ├── volume-off-fill.tsx
        │   │   │   │   ├── volume-off.tsx
        │   │   │   │   ├── volume-up-fill.tsx
        │   │   │   │   ├── volume-up.tsx
        │   │   │   │   ├── warning-fill.tsx
        │   │   │   │   ├── warning.tsx
        │   │   │   │   ├── wifi-fill.tsx
        │   │   │   │   ├── wifi.tsx
        │   │   │   │   ├── zip-file-type.tsx
        │   │   │   │   ├── zoom-in-map-fill.tsx
        │   │   │   │   ├── zoom-in-map.tsx
        │   │   │   │   ├── zoom-out-map-fill.tsx
        │   │   │   │   └── zoom-out-map.tsx
        │   │   │   └── icon-mapping.tsx
        │   │   ├── index.ts
        │   │   ├── libs/
        │   │   │   ├── ImageZoom/
        │   │   │   │   ├── ReactNativeZoomableView.tsx
        │   │   │   │   ├── ReactNativeZoomableViewWithGestures.tsx
        │   │   │   │   ├── helper.ts
        │   │   │   │   ├── index.tsx
        │   │   │   │   └── types/
        │   │   │   │       └── index.ts
        │   │   │   └── VideoPlayer/
        │   │   │       ├── DRMType.js
        │   │   │       ├── FilterType.js
        │   │   │       ├── TextTrackType.js
        │   │   │       └── VideoResizeMode.js
        │   │   ├── modals/
        │   │   │   ├── CometChatAIAssistantTools.ts
        │   │   │   ├── CometChatMessageOption.ts
        │   │   │   ├── CometChatMessageTemplate.ts
        │   │   │   ├── StreamMessage.ts
        │   │   │   └── index.ts
        │   │   ├── resources/
        │   │   │   ├── CometChatLocalizeNew/
        │   │   │   │   ├── CometChatI18nProvider.tsx
        │   │   │   │   ├── CometChatLocalizationHelper.ts
        │   │   │   │   ├── CometChatLocalizeContext.tsx
        │   │   │   │   ├── LocalizationManager.ts
        │   │   │   │   ├── index.ts
        │   │   │   │   ├── resources/
        │   │   │   │   │   ├── de/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── en/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── es/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── fr/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── hi/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── hu/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── it/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── ja/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── ko/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── lt/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── ms/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── nl/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── pt/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── ru/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── sv/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── tr/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── zh/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   └── zh-tw/
        │   │   │   │   │       └── translation.json
        │   │   │   │   ├── type.ts
        │   │   │   │   └── useCometChatTranslationHook.ts
        │   │   │   ├── CometChatSoundManager/
        │   │   │   │   ├── CometChatSoundManager.js
        │   │   │   │   ├── index.ts
        │   │   │   │   ├── resources/
        │   │   │   │   │   └── index.js
        │   │   │   │   └── sound.js
        │   │   │   └── index.ts
        │   │   ├── services/
        │   │   │   └── stream-message.service.ts
        │   │   ├── utils/
        │   │   │   ├── CometChatMessageHelper/
        │   │   │   │   └── index.ts
        │   │   │   ├── CometChatMessagePreview/
        │   │   │   │   ├── CometChatMessagePreview.tsx
        │   │   │   │   ├── index.ts
        │   │   │   │   ├── resources/
        │   │   │   │   │   └── index.ts
        │   │   │   │   └── style.ts
        │   │   │   ├── CommonUtils.ts
        │   │   │   ├── MarkdownUtils.ts
        │   │   │   ├── MentionUtils.ts
        │   │   │   ├── MessageReceiptUtils.ts
        │   │   │   ├── MessageUtils.tsx
        │   │   │   ├── NetworkUtils.tsx
        │   │   │   ├── PermissionUtil.ts
        │   │   │   ├── conversationUtils.ts
        │   │   │   ├── icsToJson.js
        │   │   │   └── index.ts
        │   │   └── views/
        │   │       ├── CometChatAIAssistantMessageBubble/
        │   │       │   ├── CometChatAIAssistantMessageBubble.tsx
        │   │       │   └── index.ts
        │   │       ├── CometChatAICard/
        │   │       │   ├── CometChatAICard.tsx
        │   │       │   └── resources/
        │   │       │       └── index.ts
        │   │       ├── CometChatActionSheet/
        │   │       │   ├── ActionItem.ts
        │   │       │   ├── CometChatActionSheet.tsx
        │   │       │   ├── hooks.ts
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatAudioBubble/
        │   │       │   ├── AnimatedAudioWaves.tsx
        │   │       │   ├── CometChatAudioBubble.tsx
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatAvatar/
        │   │       │   ├── CometChatAvatar.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatBadge/
        │   │       │   ├── CometChatBadge.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatBottomSheet/
        │   │       │   ├── CometChatBottomSheet.tsx
        │   │       │   └── index.ts
        │   │       ├── CometChatConfirmDialog/
        │   │       │   ├── CometChatConfirmDialog.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatDate/
        │   │       │   ├── CometChatDate.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatDateSeperator/
        │   │       │   ├── CometChatDateSeparator.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatDeletedBubble/
        │   │       │   ├── CometChatDeletedBubble.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatEmojiKeyboard/
        │   │       │   ├── CometChatEmojiKeyboard.tsx
        │   │       │   ├── Emoji.ts
        │   │       │   ├── EmojiCategory.ts
        │   │       │   ├── emojis.ts
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatFileBubble/
        │   │       │   ├── CometChatFileBubble.tsx
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatImageBubble/
        │   │       │   ├── CometChatImageBubble.tsx
        │   │       │   ├── CometChatImageLoader.tsx
        │   │       │   ├── assets/
        │   │       │   │   └── index.ts
        │   │       │   └── index.ts
        │   │       ├── CometChatImageViewerModal/
        │   │       │   ├── ImageViewerModal.tsx
        │   │       │   ├── index.tsx
        │   │       │   └── resources/
        │   │       │       └── index.ts
        │   │       ├── CometChatInlineAudioRecorder/
        │   │       │   ├── AudioWaveformVisualizer.tsx
        │   │       │   ├── CometChatInlineAudioRecorder.tsx
        │   │       │   ├── index.ts
        │   │       │   ├── style.ts
        │   │       │   ├── types.ts
        │   │       │   └── useAudioRecorder.ts
        │   │       ├── CometChatLinkConfirmPopup/
        │   │       │   ├── CometChatLinkConfirmPopup.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatList/
        │   │       │   ├── CometChatList.tsx
        │   │       │   ├── Header.tsx
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatListItem/
        │   │       │   ├── CometChatListItem.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatMediaRecorder/
        │   │       │   ├── AnimatingMic.tsx
        │   │       │   ├── CometChatAudioPlayer.tsx
        │   │       │   ├── CometChatAudioPreview/
        │   │       │   │   └── CometChatAudioPreview.tsx
        │   │       │   ├── CometChatMediaRecorder.tsx
        │   │       │   ├── Timer.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatMessageBubble/
        │   │       │   ├── CometChatMessageBubble.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatMessageInput/
        │   │       │   ├── CometChatMessageInput.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatNewMessageIndicator/
        │   │       │   ├── CometChatNewMessageIndicator.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatQuickReactions/
        │   │       │   ├── CometChatQuickReactions.tsx
        │   │       │   ├── QuickReactionsStyle.tsx
        │   │       │   ├── index.ts
        │   │       │   └── resources/
        │   │       │       └── index.ts
        │   │       ├── CometChatReactionList/
        │   │       │   ├── CometChatReactionList.tsx
        │   │       │   ├── ReactionListStyle.tsx
        │   │       │   ├── Skeleton.tsx
        │   │       │   ├── index.ts
        │   │       │   └── resources/
        │   │       │       └── index.ts
        │   │       ├── CometChatReactions/
        │   │       │   ├── CometChatReactions.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatReceipt/
        │   │       │   ├── CometChatReceipt.tsx
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatReportDialog/
        │   │       │   ├── CometChatReportDialog.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatRetryButton/
        │   │       │   ├── CometChatRetryButton.tsx
        │   │       │   └── index.ts
        │   │       ├── CometChatSendButtonView/
        │   │       │   ├── CometChatSendButtonView.tsx
        │   │       │   └── index.ts
        │   │       ├── CometChatStatusIndicator/
        │   │       │   ├── CometChatStatusIndicator.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatStreamMessageBubble/
        │   │       │   ├── CometChatStreamMessageBubble.tsx
        │   │       │   └── index.ts
        │   │       ├── CometChatSuggestionList/
        │   │       │   ├── CometChatSuggestionList.tsx
        │   │       │   ├── Skeleton.tsx
        │   │       │   ├── SuggestionItem.ts
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatTextBubble/
        │   │       │   ├── CometChatTextBubble.tsx
        │   │       │   └── index.ts
        │   │       ├── CometChatTooltipMenu/
        │   │       │   ├── CometChatTooltipMenu.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatVideoBubble/
        │   │       │   ├── CometChatVideoBubble.tsx
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatVideoPlayer/
        │   │       │   ├── CometChatVideoPlayer.tsx
        │   │       │   └── index.tsx
        │   │       ├── ErrorEmptyView/
        │   │       │   └── ErrorEmptyView.tsx
        │   │       └── index.ts
        │   └── theme/
        │       ├── CometChatThemeHelper.ts
        │       ├── context.ts
        │       ├── default/
        │       │   ├── color/
        │       │   │   ├── dark.ts
        │       │   │   └── light.ts
        │       │   ├── default.ts
        │       │   ├── index.ts
        │       │   ├── resources/
        │       │   │   └── icons/
        │       │   │       └── index.ts
        │       │   ├── spacing.ts
        │       │   └── typography.ts
        │       ├── hook.ts
        │       ├── index.ts
        │       ├── provider.tsx
        │       └── type.ts
        └── tsconfig.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
# OSX
#
.DS_Store

# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
**/.xcode.env.local

# Android/IntelliJ
#
build/
.idea
.gradle
local.properties
*.iml
*.hprof
.cxx/
*.keystore
!debug.keystore


# node.js
#
node_modules/
npm-debug.log
yarn-error.log

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/

**/fastlane/report.xml
**/fastlane/Preview.html
**/fastlane/screenshots
**/fastlane/test_output

# Bundle artifact
*.jsbundle

# Ruby / CocoaPods
**/Pods/
/vendor/bundle/

# Temporary files created by Metro to check the health of the file watcher
.metro-health-check*

# testing
/coverage

# Yarn
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions

# Ignore android and ios folders in SampleAppExpo
examples/SampleAppExpo/android/
examples/SampleAppExpo/ios/

================================================
FILE: README.md
================================================
<p align="center">
  <img alt="CometChat" src="https://assets.cometchat.io/website/images/logos/banner.png">
</p>

# CometChat React Native UI Kit

CometChat React Native UIKit provides a pre-built user interface kit that developers can use to quickly integrate a reliable & fully-featured chat experience into an existing or a new mobile app.<br />

<div style="
    display: flex;
    align-items: center;
    justify-content: center;">
   <img src="./screenshots/overview_cometchat_screens.png" />
</div>

## 🚀 Explore the Sample Apps!

Dive straight into our Sample Apps to see CometChat UI Kit in action! Whether you're building a messaging app or enhancing your existing project, this sample app showcases the full potential of our React Native UI components.
- [Sample App ](examples/SampleApp#readme)
- [Sample App AI](examples/SampleAppAI#readme)
- [Sample App Expo](examples/SampleAppExpo#readme)
- [Sample App with Push Notifications](examples/SampleAppWithPushNotifications#readme)

## Prerequisites

- **Node.js** 18 or higher
- **React Native** Version 0.77 or later (up to the latest version)  

**iOS**
- XCode
- Pod (CocoaPods) for iOS
- An iOS device or emulator with iOS 12.0 or above.

**Android**
- Android Studio
- Android device or emulator with Android version 5.0 or above.

## Getting Started

To set up React Native Chat UIKit and utilize CometChat for your chat functionality, you'll need to follow these steps:
1. Registration: Go to the [CometChat Dashboard](https://app.cometchat.com/) and sign up for an account.
2. After registering, log into your CometChat account and create a new app. Once created, CometChat will generate an Auth Key and App ID for you. Keep
   these credentials secure as you'll need them later.
3. Check the [Key Concepts](https://www.cometchat.com/docs/fundamentals/key-concepts) to understand the basic components of CometChat.
4. Refer to the [Integration Steps](https://www.cometchat.com/docs/ui-kit/react-native/5.0/getting-started) in our documentation to integrate the UI Kit into your iOS app.

## Help and Support

For issues running the project or integrating with our UI Kits, consult our [documentation](https://www.cometchat.com/docs/ui-kit/react-native/5.0/overview)
or create a [support ticket](https://help.cometchat.com/hc/en-us) or seek real-time support via the [CometChat Dashboard](https://app.cometchat.com/).

================================================
FILE: examples/SampleApp/.bundle/config
================================================
BUNDLE_PATH: "vendor/bundle"
BUNDLE_FORCE_RUBY_PLATFORM: 1


================================================
FILE: examples/SampleApp/.eslintrc.js
================================================
module.exports = {
  root: true,
  extends: '@react-native',
};


================================================
FILE: examples/SampleApp/.gitignore
================================================
# OSX
#
.DS_Store

# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
**/.xcode.env.local

# Android/IntelliJ
#
build/
.idea
.gradle
local.properties
*.iml
*.hprof
.cxx/
*.keystore
!debug.keystore
.kotlin/

# node.js
#
node_modules/
npm-debug.log
yarn-error.log

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/

**/fastlane/report.xml
**/fastlane/Preview.html
**/fastlane/screenshots
**/fastlane/test_output

# Bundle artifact
*.jsbundle

# Ruby / CocoaPods
**/Pods/
/vendor/bundle/

# Temporary files created by Metro to check the health of the file watcher
.metro-health-check*

# testing
/coverage

# Yarn
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions


================================================
FILE: examples/SampleApp/.prettierrc.js
================================================
module.exports = {
  arrowParens: 'avoid',
  singleQuote: true,
  trailingComma: 'all',
};


================================================
FILE: examples/SampleApp/.vscode/settings.json
================================================
{
    "workbench.colorCustomizations": {
        "activityBar.activeBackground": "#fa1b49",
        "activityBar.background": "#fa1b49",
        "activityBar.foreground": "#e7e7e7",
        "activityBar.inactiveForeground": "#e7e7e799",
        "activityBarBadge.background": "#155e02",
        "activityBarBadge.foreground": "#e7e7e7",
        "commandCenter.border": "#e7e7e799",
        "sash.hoverBorder": "#fa1b49",
        "statusBar.background": "#dd0531",
        "statusBar.foreground": "#e7e7e7",
        "statusBarItem.hoverBackground": "#fa1b49",
        "statusBarItem.remoteBackground": "#dd0531",
        "statusBarItem.remoteForeground": "#e7e7e7",
        "titleBar.activeBackground": "#dd0531",
        "titleBar.activeForeground": "#e7e7e7",
        "titleBar.inactiveBackground": "#dd053199",
        "titleBar.inactiveForeground": "#e7e7e799"
    },
    "peacock.color": "#dd0531"
}

================================================
FILE: examples/SampleApp/.watchmanconfig
================================================
{}


================================================
FILE: examples/SampleApp/App.tsx
================================================
import './gesture-handler';
import React, { useState, useEffect, useRef } from 'react';
import {
  Platform,
  View,
  PlatformColor,
  AppState,
  AppStateStatus,
} from 'react-native';
import { enableScreens } from 'react-native-screens';
enableScreens();
import {
  CometChatI18nProvider,
  CometChatIncomingCall,
  CometChatTheme,
  CometChatThemeProvider,
  CometChatUIEventHandler,
  CometChatUIEvents,
  CometChatUIKit,
  UIKitSettings,
} from '@cometchat/chat-uikit-react-native';

import { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
import { CometChat } from '@cometchat/chat-sdk-react-native';
import RootStackNavigator from './src/navigation/RootStackNavigator';
import { AppConstants } from './src/utils/AppConstants';
import { requestAndroidPermissions } from './src/utils/helper';
import AsyncStorage from '@react-native-async-storage/async-storage';
import { useConfig } from './src/config/store';
import { DeepPartial } from '@cometchat/chat-uikit-react-native/src/shared/helper/types';
import { createTypography } from './src/utils/themeTypography';

// Listener ID for registering and removing CometChat listeners.
const listenerId = 'app';

const App = (): React.ReactElement => {
  const [callReceived, setCallReceived] = useState(false);
  const incomingCall = useRef<CometChat.Call | CometChat.CustomMessage | null>(
    null,
  );
  const [isInitializing, setIsInitializing] = useState(true);
  const [isLoggedIn, setIsLoggedIn] = useState(false);
  const [userLoggedIn, setUserLoggedIn] = useState(false);
  const [currentToken, setCurrentToken] = useState('');
  const [isTokenRegistered, setIsTokenRegistered] = useState(false);
  const [hasValidAppCredentials, setHasValidAppCredentials] = useState(false);
  const styleConfig = useConfig(state => state?.settings?.style);

  const theme : { light:  DeepPartial<CometChatTheme>; dark: DeepPartial<CometChatTheme> } = {
  light: {
    color: {
      primary: styleConfig.color.brandColor,
      textPrimary: styleConfig.color.primaryTextLight,
      textSecondary: styleConfig.color.secondaryTextLight,
    },
    typography: createTypography(styleConfig.typography.font),
  },
  dark: {
    color: {
      primary: styleConfig.color.brandColor,
      textPrimary: styleConfig.color.primaryTextDark,
      textSecondary: styleConfig.color.secondaryTextDark,
    },
    typography: createTypography(styleConfig.typography.font),
  },
};

  /**
   * Initialize CometChat UIKit and configure Google Sign-In.
   * Retrieves credentials from AsyncStorage and uses fallback constants if needed.
   */
  useEffect(() => {
    async function init() {
      try {
        // Retrieve stored app credentials or default to an empty object.
        const AppData = (await AsyncStorage.getItem('appCredentials')) || '{}';
        const storedCredentials = JSON.parse(AppData);

        // Determine the final credentials (from AsyncStorage or AppConstants).
        const finalAppId = storedCredentials.appId || AppConstants.appId;
        const finalAuthKey = storedCredentials.authKey || AppConstants.authKey;
        const finalRegion = storedCredentials.region || AppConstants.region;

        // Set hasValidAppCredentials based on whether all values are available.
        if (finalAppId && finalAuthKey && finalRegion) {
          setHasValidAppCredentials(true);
        } else {
          setHasValidAppCredentials(false);
        }

        await CometChatUIKit.init({
          appId: finalAppId,
          authKey: finalAuthKey,
          region: finalRegion,
          subscriptionType: CometChat.AppSettings
            .SUBSCRIPTION_TYPE_ALL_USERS as UIKitSettings['subscriptionType'],
        });

        // If a user is already logged in, update the state.
        const loggedInUser = CometChatUIKit.loggedInUser;
        if (loggedInUser) {
          setIsLoggedIn(true);
        }
      } catch (error) {
        console.log('Error during initialization', error);
      } finally {
        // Mark initialization as complete.
        setIsInitializing(false);
      }
    }
    init();
  }, []);

  /**
   * Monitor app state changes to verify the logged-in status and clear notifications.
   * When the app becomes active, it cancels Android notifications and checks the login status.
   */
  useEffect(() => {
    if (Platform.OS === 'android') {
      // Request required Android permissions for notifications.
      requestAndroidPermissions();
    }
    const handleAppStateChange = async (nextState: AppStateStatus) => {
      if (nextState === 'active') {
        try {
          // Verify if there is a valid logged-in user.
          const chatUser = await CometChat.getLoggedinUser();
          setIsLoggedIn(!!chatUser);
        } catch (error) {
          console.log('Error verifying CometChat user on resume:', error);
        }
      }
    };
    const subscription = AppState.addEventListener(
      'change',
      handleAppStateChange,
    );
    return () => subscription.remove();
  }, []);

  /**
   * Attach CometChat login listener to handle login and logout events.
   * Updates user login status accordingly.
   */
  useEffect(() => {
    CometChat.addLoginListener(
      listenerId,
      new CometChat.LoginListener({
        loginSuccess: () => {
          setUserLoggedIn(true);
        },
        loginFailure: (e: CometChat.CometChatException) => {
          console.log('LoginListener :: loginFailure', e.message);
        },
        logoutSuccess: () => {
          setUserLoggedIn(false);
        },
        logoutFailure: (e: CometChat.CometChatException) => {
          console.log('LoginListener :: logoutFailure', e.message);
        },
      }),
    );

    // Clean up the login listener on component unmount.
    return () => {
      CometChat.removeLoginListener(listenerId);
    };
  }, []);

  /**
   * Attach CometChat call listeners to handle incoming, outgoing, and cancelled call events.
   * Also handles UI events for call end.
   */
  useEffect(() => {
    // Listener for call events.
    CometChat.addCallListener(
      listenerId,
      new CometChat.CallListener({
        onIncomingCallReceived: (call: CometChat.Call) => {
          // Check if there's already an active call
          try {
            const activeCall = CometChat.getActiveCall();
            if (activeCall) {
              // If there's an active call, reject the incoming call with busy status
              setTimeout(() => {
                CometChat.rejectCall(
                  call.getSessionId(),
                  CometChat.CALL_STATUS.BUSY,
                )
                  .then(() => {
                    console.log('Incoming call rejected due to active call');
                  })
                  .catch(error => {
                    console.error(
                      'Error rejecting call with busy status:',
                      error,
                    );
                  });
              }, 2000);
            } else {
              // No active call, proceed with normal incoming call handling
              // Hide any bottom sheet UI before showing the incoming call screen.
              CometChatUIEventHandler.emitUIEvent(
                CometChatUIEvents.ccToggleBottomSheet,
                {
                  isBottomSheetVisible: false,
                },
              );
              // Store the incoming call and update state.
              incomingCall.current = call;
              setCallReceived(true);
            }
          } catch (error) {
            console.error('Error getting active call:', error);
            // If error getting active call, proceed with normal handling
            CometChatUIEventHandler.emitUIEvent(
              CometChatUIEvents.ccToggleBottomSheet,
              {
                isBottomSheetVisible: false,
              },
            );
            incomingCall.current = call;
            setCallReceived(true);
          }
        },
        onOutgoingCallRejected: () => {
          // Clear the call state if outgoing call is rejected.
          incomingCall.current = null;
          setCallReceived(false);
        },
        onIncomingCallCancelled: () => {
          // Clear the call state if the incoming call is cancelled.
          incomingCall.current = null;
          setCallReceived(false);
        },
      }),
    );

    // Additional listener to handle call end events.
    CometChatUIEventHandler.addCallListener(listenerId, {
      ccCallEnded: () => {
        incomingCall.current = null;
        setCallReceived(false);
      },
    });

    // Remove call listeners on cleanup.
    return () => {
      CometChatUIEventHandler.removeCallListener(listenerId);
      CometChat.removeCallListener(listenerId);
    };
  }, [userLoggedIn]);

  // Show a blank/splash screen while the app is initializing.
  if (isInitializing) {
    return (
      <View
        style={{
          flex: 1,
          backgroundColor: Platform.select({
            ios: PlatformColor('systemBackgroundColor'),
            android: PlatformColor('?android:attr/colorBackground'),
          }),
        }}
      />
    );
  }

  // Once initialization is complete, render the main app UI.
  return (
    <GestureHandlerRootView style={{ flex: 1 }}>
    <SafeAreaProvider>
      {/* Render the incoming call UI if the user is logged in and a call is received */}
      <CometChatThemeProvider theme={theme}>
        <CometChatI18nProvider>
            {isLoggedIn && callReceived && incomingCall.current ? (
              <CometChatIncomingCall
                call={incomingCall.current}
                onDecline={() => {
                  // Handle call decline by clearing the incoming call state.
                  incomingCall.current = null;
                  setCallReceived(false);
                }}
              />
            ) : null}
          <SafeAreaView edges={['top', 'bottom']} style={{ flex: 1 }}>
            {/* Render the main navigation stack, passing the login status as a prop */}
            <RootStackNavigator
              isLoggedIn={isLoggedIn}
              hasValidAppCredentials={hasValidAppCredentials}
            />
          </SafeAreaView>
        </CometChatI18nProvider>
      </CometChatThemeProvider>
    </SafeAreaProvider>
    </GestureHandlerRootView>
  );
};

export default App;


================================================
FILE: examples/SampleApp/AppErrorBoundary.tsx
================================================
import React from 'react';
import { View, Text, StyleSheet, Appearance, Button } from 'react-native';

interface State {
  hasError: boolean;
  error: Error | null;
  colorScheme: 'light' | 'dark' | null;
}

interface Props {
  children: React.ReactNode;
}

class AppErrorBoundary extends React.Component<Props, State> {
  constructor(props: Props) {
    super(props);
    const colorScheme = Appearance.getColorScheme() ?? null;
    this.state = { hasError: false, error: null, colorScheme };
  }

  static getDerivedStateFromError(error: Error) {
    // Update state so the next render shows the fallback UI.
    return { hasError: true, error };
  }

  componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {
    // Log error to an error reporting service here if needed.
    console.log('ErrorBoundary caught an error', error, errorInfo);
  }

  componentDidMount() {
    // Listen for changes in color scheme.
    Appearance.addChangeListener(({ colorScheme }) => {
      this.setState({ colorScheme: colorScheme ?? null });
    });
  }

  // Reset error state to allow retrying
  handleRetry = () => {
    this.setState({ hasError: false, error: null });
  };

  render() {
    if (this.state.hasError) {
      const styles = createStyles(this.state.colorScheme);
      return (
        <View style={styles.container}>
          <View style={styles.card}>
            <Text style={styles.title}>Something went wrong</Text>
             {/* Uncomment the next line to show the error message */}
            {/* <Text style={styles.errorText}>
              {this.state.error ? this.state.error.toString() : 'Unknown error'}
            </Text> */}
            <View style={styles.buttonContainer}>
              <Button title="Retry" onPress={this.handleRetry} color={this.state.colorScheme === 'dark' ? "#bbbbbb" : "#333333"} />
            </View>
          </View>
        </View>
      );
    }

    return this.props.children;
  }
}

const createStyles = (colorScheme: 'light' | 'dark' | null) => {
  const isDark = colorScheme === 'dark';
  return StyleSheet.create({
    container: {
      flex: 1,
      backgroundColor: isDark ? '#121212' : '#f2f2f2',
      justifyContent: 'center',
      alignItems: 'center',
      padding: 16,
    },
    card: {
      backgroundColor: isDark ? '#1e1e1e' : '#ffffff',
      padding: 24,
      borderRadius: 12,
      alignItems: 'center',
      shadowColor: isDark ? '#000000' : '#aaa',
      shadowOffset: { width: 0, height: 2 },
      shadowOpacity: 0.3,
      shadowRadius: 4,
      elevation: 5,
      width: '100%',
      maxWidth: 400,
    },
    title: {
      fontSize: 20,
      fontWeight: '700',
      marginBottom: 12,
      color: isDark ? '#ffffff' : '#333333',
    },
    errorText: {
      fontSize: 16,
      textAlign: 'center',
      color: isDark ? '#cccccc' : '#666666',
      marginBottom: 20,
    },
    buttonContainer: {
      width: '100%',
    },
  });
};

export default AppErrorBoundary;


================================================
FILE: examples/SampleApp/Gemfile
================================================
source 'https://rubygems.org'

# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby ">= 2.6.10"

# Exclude problematic versions of cocoapods and activesupport that causes build failures.
gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1'
gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
gem 'xcodeproj', '< 1.26.0'
gem 'concurrent-ruby', '< 1.3.4'

# Ruby 3.4.0 has removed some libraries from the standard library.
gem 'bigdecimal'
gem 'logger'
gem 'benchmark'
gem 'mutex_m'


================================================
FILE: examples/SampleApp/README.md
================================================

<p align="center">
  <img alt="CometChat" src="https://assets.cometchat.io/website/images/logos/banner.png">
</p>

# React Native Sample App by CometChat

This is a reference application showcasing the integration of [CometChat's React Native UI Kit](https://www.cometchat.com/docs/ui-kit/react-native/5.0/overview) in a React Native project. It demonstrates how to implement real-time messaging and voice/video calling features with ease.

<div style="display: flex; align-items: center; justify-content: center">
   <img src="../../screenshots/overview_cometchat_screens.png" />
</div>


## Prerequisites

Sign up for a [CometChat](https://app.cometchat.com/) account to obtain your app credentials: _`App ID`_, _`Region`_, and _`Auth Key`_

- **Node.js** 18 or higher
- **React Native** Version 0.77 or later (up to the latest version) 

**iOS**
- XCode
- Pod (CocoaPods) for iOS
- An iOS device or emulator with iOS 12.0 or above.
- Ensure that you have configured the provisioning profile in Xcode to run the app on a physical device.

**Android**
- Android Studio
- Android device or emulator with Android version 5.0 or above.


## Installation

1. Clone the repository:
   ```sh
   git clone https://github.com/cometchat/cometchat-uikit-react-native.git
   ```

1. Change into the specific app's directory (e.g., SampleApp).
   ```sh
     cd examples/SampleApp
   ```
1. Run `npm install` to install the dependencies.

1. `[Optional]` Configure CometChat credentials:
    - Open the `AppConstants.tsx` file located at `examples/SampleApp/src/utils/AppConstants.tsx` and enter your CometChat _`appId`_, _`region`_, and _`authKey`_:
      ```ts
      export const AppConstants = {
          appId: 'YOUR_APP_ID',
          authKey: 'YOUR_AUTH_KEY',
          region: 'REGION',
          //other properties
      }
      ```

1. For iOS, install dependencies after navigating to ios:
   ```sh
    cd ios
    pod install
   ```

1. Run the app on a device or emulator from the repo root.
   ```sh
    npm start
    npm run android
    npm run ios
   ```


## Help and Support

For issues running the project or integrating with our UI Kits, consult our [documentation](https://www.cometchat.com/docs/ui-kit/react-native/5.0/getting-started) or create a [support ticket](https://help.cometchat.com/hc/en-us). You can also access real-time support via the [CometChat Dashboard](http://app.cometchat.com/).

================================================
FILE: examples/SampleApp/android/app/build.gradle
================================================
apply plugin: "com.android.application"
apply plugin: "org.jetbrains.kotlin.android"
apply plugin: "com.facebook.react"

/**
 * This is the configuration block to customize your React Native Android app.
 * By default you don't need to apply any configuration, just uncomment the lines you need.
 */
react {
    /* Folders */
    //   The root of your project, i.e. where "package.json" lives. Default is '../..'
    // root = file("../../")
    //   The folder where the react-native NPM package is. Default is ../../node_modules/react-native
    // reactNativeDir = file("../../node_modules/react-native")
    //   The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen
    // codegenDir = file("../../node_modules/@react-native/codegen")
    //   The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js
    // cliFile = file("../../node_modules/react-native/cli.js")

    /* Variants */
    //   The list of variants to that are debuggable. For those we're going to
    //   skip the bundling of the JS bundle and the assets. By default is just 'debug'.
    //   If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
    // debuggableVariants = ["liteDebug", "prodDebug"]

    /* Bundling */
    //   A list containing the node command and its flags. Default is just 'node'.
    // nodeExecutableAndArgs = ["node"]
    //
    //   The command to run when bundling. By default is 'bundle'
    // bundleCommand = "ram-bundle"
    //
    //   The path to the CLI configuration file. Default is empty.
    // bundleConfig = file(../rn-cli.config.js)
    //
    //   The name of the generated asset file containing your JS bundle
    // bundleAssetName = "MyApplication.android.bundle"
    //
    //   The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
    // entryFile = file("../js/MyApplication.android.js")
    //
    //   A list of extra flags to pass to the 'bundle' commands.
    //   See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
    // extraPackagerArgs = []

    /* Hermes Commands */
    //   The hermes compiler command to run. By default it is 'hermesc'
    // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
    //
    //   The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
    // hermesFlags = ["-O", "-output-source-map"]

    /* Autolinking */
    autolinkLibrariesWithApp()
}

/**
 * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
 */
def enableProguardInReleaseBuilds = false

/**
 * The preferred build flavor of JavaScriptCore (JSC)
 *
 * For example, to use the international variant, you can use:
 * `def jscFlavor = io.github.react-native-community:jsc-android-intl:2026004.+`
 *
 * The international variant includes ICU i18n library and necessary data
 * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
 * give correct results when using with locales other than en-US. Note that
 * this variant is about 6MiB larger per architecture than default.
 */
def jscFlavor = 'io.github.react-native-community:jsc-android:2026004.+'

android {
    ndkVersion rootProject.ext.ndkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
    compileSdk rootProject.ext.compileSdkVersion

    namespace "com.cometchat.sampleapp.reactnative.android"
    defaultConfig {
        applicationId "com.cometchat.sampleapp.reactnative.android"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 1
        versionName "5.3.4"
    }
    signingConfigs {
        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            // Caution! In production, you need to generate your own keystore file.
            // see https://reactnative.dev/docs/signed-apk-android.
            signingConfig signingConfigs.debug
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }
}

dependencies {
    // The version of react-native is set by the React Native Gradle Plugin
    implementation("com.facebook.react:react-android")

    if (hermesEnabled.toBoolean()) {
        implementation("com.facebook.react:hermes-android")
    } else {
        implementation jscFlavor
    }

    implementation 'com.facebook.fresco:animated-gif:3.6.0' //gif android
}


================================================
FILE: examples/SampleApp/android/app/proguard-rules.pro
================================================
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:


================================================
FILE: examples/SampleApp/android/app/src/main/AndroidManifest.xml
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package='com.cometchat.sampleapp.reactnative.android'> 

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <uses-permission android:name="android.permission.BIND_TELECOM_CONNECTION_SERVICE"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme"
      android:usesCleartextTraffic="${usesCleartextTraffic}"
      android:supportsRtl="true">
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|fontScale"
        android:launchMode="singleTask"
        android:windowSoftInputMode="adjustResize"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
    </application>
</manifest>


================================================
FILE: examples/SampleApp/android/app/src/main/java/com/sampleapp/MainActivity.kt
================================================
package com.cometchat.sampleapp.reactnative.android
import android.os.Bundle

import com.facebook.react.ReactActivity
import com.facebook.react.ReactActivityDelegate
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
import com.facebook.react.defaults.DefaultReactActivityDelegate

class MainActivity : ReactActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
    // REQUIRED for react-native-screens
    super.onCreate(null)
  }


  /**
   * Returns the name of the main component registered from JavaScript. This is used to schedule
   * rendering of the component.
   */
  override fun getMainComponentName(): String = "sampleapp"

  /**
   * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
   * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]
   */
  override fun createReactActivityDelegate(): ReactActivityDelegate =
      DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled)
}


================================================
FILE: examples/SampleApp/android/app/src/main/java/com/sampleapp/MainApplication.kt
================================================
package com.cometchat.sampleapp.reactnative.android

import android.app.Application
import com.facebook.react.PackageList
import com.facebook.react.ReactApplication
import com.facebook.react.ReactHost
import com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative
import com.facebook.react.ReactNativeHost
import com.facebook.react.ReactPackage
import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
import com.facebook.react.defaults.DefaultReactNativeHost

class MainApplication : Application(), ReactApplication {

  override val reactNativeHost: ReactNativeHost =
      object : DefaultReactNativeHost(this) {
        override fun getPackages(): List<ReactPackage> =
            PackageList(this).packages.apply {
              // Packages that cannot be autolinked yet can be added manually here, for example:
              // add(MyReactNativePackage())
            }

        override fun getJSMainModuleName(): String = "index"

        override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG

        override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
        override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
      }

  override val reactHost: ReactHost
    get() = getDefaultReactHost(applicationContext, reactNativeHost)

  override fun onCreate() {
    super.onCreate()
    loadReactNative(this)
  }
}


================================================
FILE: examples/SampleApp/android/app/src/main/res/drawable/rn_edit_text_material.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<inset xmlns:android="http://schemas.android.com/apk/res/android"
       android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material"
       android:insetRight="@dimen/abc_edit_text_inset_horizontal_material"
       android:insetTop="@dimen/abc_edit_text_inset_top_material"
       android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"
       >

    <selector>
        <!--
          This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I).
          The item below with state_pressed="false" and state_focused="false" causes a NullPointerException.
          NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)'

          <item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>

          For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR.
        -->
        <item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
        <item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/>
    </selector>

</inset>


================================================
FILE: examples/SampleApp/android/app/src/main/res/values/colors.xml
================================================
<resources>
    <!-- Other color definitions -->
    <color name="notification_color">#FFFFFF</color> <!-- Replace with your desired color -->
</resources>


================================================
FILE: examples/SampleApp/android/app/src/main/res/values/strings.xml
================================================
<resources>
    <string name="app_name">sampleapp</string>
</resources>


================================================
FILE: examples/SampleApp/android/app/src/main/res/values/styles.xml
================================================
<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="android:editTextBackground">@drawable/rn_edit_text_material</item>
    </style>

</resources>


================================================
FILE: examples/SampleApp/android/build.gradle
================================================
buildscript {
    ext {
        buildToolsVersion = "36.0.0"
        minSdkVersion = 24
        compileSdkVersion = 36
        targetSdkVersion = 36
        ndkVersion = "27.1.12297006"
        kotlinVersion = "2.1.20"
        version = "V5.3.4"
    }
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle")
        classpath("com.facebook.react:react-native-gradle-plugin")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
    }
}

apply plugin: "com.facebook.react.rootproject"


================================================
FILE: examples/SampleApp/android/gradle/wrapper/gradle-wrapper.properties
================================================
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists


================================================
FILE: examples/SampleApp/android/gradle.properties
================================================
# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true

# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true

# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using
# ./gradlew <task> -PreactNativeArchitectures=x86_64
reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64

# Use this property to enable support to the new architecture.
# This will allow you to use TurboModules and the Fabric render in
# your application. You should enable this flag either if you want
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
newArchEnabled=true

# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true

# Use this property to enable edge-to-edge display support.
# This allows your app to draw behind system bars for an immersive UI.
# Note: Only works with ReactActivity and should not be used with custom Activity.
edgeToEdgeEnabled=false


================================================
FILE: examples/SampleApp/android/gradlew
================================================
#!/bin/sh

#
# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
#

##############################################################################
#
#   Gradle start up script for POSIX generated by Gradle.
#
#   Important for running:
#
#   (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
#       noncompliant, but you have some other compliant shell such as ksh or
#       bash, then to run this script, type that shell name before the whole
#       command line, like:
#
#           ksh Gradle
#
#       Busybox and similar reduced shells will NOT work, because this script
#       requires all of these POSIX shell features:
#         * functions;
#         * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
#           «${var#prefix}», «${var%suffix}», and «$( cmd )»;
#         * compound commands having a testable exit status, especially «case»;
#         * various built-in commands including «command», «set», and «ulimit».
#
#   Important for patching:
#
#   (2) This script targets any POSIX shell, so it avoids extensions provided
#       by Bash, Ksh, etc; in particular arrays are avoided.
#
#       The "traditional" practice of packing multiple parameters into a
#       space-separated string is a well documented source of bugs and security
#       problems, so this is (mostly) avoided, by progressively accumulating
#       options in "$@", and eventually passing that to Java.
#
#       Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
#       and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
#       see the in-line comments for details.
#
#       There are tweaks for specific operating systems such as AIX, CygWin,
#       Darwin, MinGW, and NonStop.
#
#   (3) This script is generated from the Groovy template
#       https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
#       within the Gradle project.
#
#       You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################

# Attempt to set APP_HOME

# Resolve links: $0 may be a link
app_path=$0

# Need this for daisy-chained symlinks.
while
    APP_HOME=${app_path%"${app_path##*/}"}  # leaves a trailing /; empty if no leading path
    [ -h "$app_path" ]
do
    ls=$( ls -ld "$app_path" )
    link=${ls#*' -> '}
    case $link in             #(
      /*)   app_path=$link ;; #(
      *)    app_path=$APP_HOME$link ;;
    esac
done

# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum

warn () {
    echo "$*"
} >&2

die () {
    echo
    echo "$*"
    echo
    exit 1
} >&2

# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "$( uname )" in                #(
  CYGWIN* )         cygwin=true  ;; #(
  Darwin* )         darwin=true  ;; #(
  MSYS* | MINGW* )  msys=true    ;; #(
  NONSTOP* )        nonstop=true ;;
esac

CLASSPATH="\\\"\\\""


# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
        # IBM's JDK on AIX uses strange locations for the executables
        JAVACMD=$JAVA_HOME/jre/sh/java
    else
        JAVACMD=$JAVA_HOME/bin/java
    fi
    if [ ! -x "$JAVACMD" ] ; then
        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
    fi
else
    JAVACMD=java
    if ! command -v java >/dev/null 2>&1
    then
        die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
    fi
fi

# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
    case $MAX_FD in #(
      max*)
        # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
        # shellcheck disable=SC2039,SC3045
        MAX_FD=$( ulimit -H -n ) ||
            warn "Could not query maximum file descriptor limit"
    esac
    case $MAX_FD in  #(
      '' | soft) :;; #(
      *)
        # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
        # shellcheck disable=SC2039,SC3045
        ulimit -n "$MAX_FD" ||
            warn "Could not set maximum file descriptor limit to $MAX_FD"
    esac
fi

# Collect all arguments for the java command, stacking in reverse order:
#   * args from the command line
#   * the main class name
#   * -classpath
#   * -D...appname settings
#   * --module-path (only if needed)
#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.

# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
    APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
    CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )

    JAVACMD=$( cygpath --unix "$JAVACMD" )

    # Now convert the arguments - kludge to limit ourselves to /bin/sh
    for arg do
        if
            case $arg in                                #(
              -*)   false ;;                            # don't mess with options #(
              /?*)  t=${arg#/} t=/${t%%/*}              # looks like a POSIX filepath
                    [ -e "$t" ] ;;                      #(
              *)    false ;;
            esac
        then
            arg=$( cygpath --path --ignore --mixed "$arg" )
        fi
        # Roll the args list around exactly as many times as the number of
        # args, so each arg winds up back in the position where it started, but
        # possibly modified.
        #
        # NB: a `for` loop captures its iteration list before it begins, so
        # changing the positional parameters here affects neither the number of
        # iterations, nor the values presented in `arg`.
        shift                   # remove old arg
        set -- "$@" "$arg"      # push replacement arg
    done
fi


# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

# Collect all arguments for the java command:
#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
#     and any embedded shellness will be escaped.
#   * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
#     treated as '${Hostname}' itself on the command line.

set -- \
        "-Dorg.gradle.appname=$APP_BASE_NAME" \
        -classpath "$CLASSPATH" \
        -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
        "$@"

# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
    die "xargs is not available"
fi

# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
#   readarray ARGS < <( xargs -n1 <<<"$var" ) &&
#   set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#

eval "set -- $(
        printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
        xargs -n1 |
        sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
        tr '\n' ' '
    )" '"$@"'

exec "$JAVACMD" "$@"


================================================
FILE: examples/SampleApp/android/gradlew.bat
================================================
@REM Copyright (c) Meta Platforms, Inc. and affiliates.
@REM
@REM This source code is licensed under the MIT license found in the
@REM LICENSE file in the root directory of this source tree.

@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem      https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@rem SPDX-License-Identifier: Apache-2.0
@rem

@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem  Gradle startup script for Windows
@rem
@rem ##########################################################################

@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute

echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto execute

echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2

goto fail

:execute
@rem Setup the command line

set CLASSPATH=


@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*

:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd

:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:omega


================================================
FILE: examples/SampleApp/android/settings.gradle
================================================
pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") }
plugins { id("com.facebook.react.settings") }
extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() }
rootProject.name = 'SampleApp'
include ':app'
includeBuild('../node_modules/@react-native/gradle-plugin')


================================================
FILE: examples/SampleApp/app.json
================================================
{
  "name": "sampleapp",
  "displayName": "sampleapp"
}


================================================
FILE: examples/SampleApp/babel.config.js
================================================
module.exports = {
  presets: ['module:@react-native/babel-preset'],
};


================================================
FILE: examples/SampleApp/gesture-handler.js
================================================


================================================
FILE: examples/SampleApp/gesture-handler.native.js
================================================
// Only import react-native-gesture-handler on native platforms
import 'react-native-gesture-handler';

================================================
FILE: examples/SampleApp/index.js
================================================
import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';
import AppErrorBoundary from './AppErrorBoundary';
import {ActiveChatProvider} from './src/utils/ActiveChatContext';

if (global?.ErrorUtils) {
  const defaultHandler = global.ErrorUtils.getGlobalHandler();

  function globalErrorHandler(error, isFatal) {
    console.log(
      '[GlobalErrorHandler]:',
      isFatal ? 'Fatal:' : 'Non-Fatal:',
      error,
    );
    defaultHandler?.(error, isFatal);
  }

  global.ErrorUtils.setGlobalHandler(globalErrorHandler);
}

if (typeof process === 'object' && process.on) {
  process.on('unhandledRejection', (reason, promise) => {
    console.log('[Unhandled Promise Rejection]:', reason);
  });
}

const Root = () => (
  <AppErrorBoundary>
    <ActiveChatProvider>
      <App />
    </ActiveChatProvider>
  </AppErrorBoundary>
);

AppRegistry.registerComponent(appName, () => Root);


================================================
FILE: examples/SampleApp/ios/.xcode.env
================================================
# This `.xcode.env` file is versioned and is used to source the environment
# used when running script phases inside Xcode.
# To customize your local environment, you can create an `.xcode.env.local`
# file that is not versioned.

# NODE_BINARY variable contains the PATH to the node executable.
#
# Customize the NODE_BINARY variable here.
# For example, to use nvm with brew, add the following line
# . "$(brew --prefix nvm)/nvm.sh" --no-use
export NODE_BINARY=$(command -v node)


================================================
FILE: examples/SampleApp/ios/Podfile
================================================
# Resolve react_native_pods.rb with node to allow for hoisting
require Pod::Executable.execute_command('node', ['-p',
  'require.resolve(
    "react-native/scripts/react_native_pods.rb",
    {paths: [process.argv[1]]},
  )', __dir__]).strip

platform :ios, min_ios_version_supported
prepare_react_native_project!

use_frameworks! :linkage => :static

target 'SampleApp' do
  config = use_native_modules!

  pod 'SPTPersistentCache', :modular_headers => true
  pod 'DVAssetLoaderDelegate', :modular_headers => true

  use_react_native!(
    :path => config[:reactNativePath],
    # An absolute path to your application root.
    :app_path => "#{Pod::Config.instance.installation_root}/.."
  )

  post_install do |installer|
    # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
    react_native_post_install(
      installer,
      config[:reactNativePath],
      :mac_catalyst_enabled => false,
      # :ccache_enabled => true
    )

    # Fix fmt consteval compilation error with Xcode 26+
    # https://github.com/expo/expo/issues/44229
    fmt_base = File.join(installer.sandbox.pod_dir('fmt'), 'include', 'fmt', 'base.h')
    if File.exist?(fmt_base)
      content = File.read(fmt_base)
      patched = content.gsub(/^#\s*define FMT_USE_CONSTEVAL 1$/, '# define FMT_USE_CONSTEVAL 0')
      if patched != content
        File.chmod(0644, fmt_base)
        File.write(fmt_base, patched)
      end
    end
  end
end


================================================
FILE: examples/SampleApp/ios/SampleApp/AppDelegate.swift
================================================
import UIKit
import React
import React_RCTAppDelegate
import ReactAppDependencyProvider

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
  var window: UIWindow?

  var reactNativeDelegate: ReactNativeDelegate?
  var reactNativeFactory: RCTReactNativeFactory?

  func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
  ) -> Bool {
    let delegate = ReactNativeDelegate()
    let factory = RCTReactNativeFactory(delegate: delegate)
    delegate.dependencyProvider = RCTAppDependencyProvider()

    reactNativeDelegate = delegate
    reactNativeFactory = factory

    window = UIWindow(frame: UIScreen.main.bounds)

    factory.startReactNative(
      withModuleName: "sampleapp",
      in: window,
      launchOptions: launchOptions
    )

    return true
  }
}

class ReactNativeDelegate: RCTDefaultReactNativeFactoryDelegate {
  override func sourceURL(for bridge: RCTBridge) -> URL? {
    self.bundleURL()
  }

  override func bundleURL() -> URL? {
#if DEBUG
    RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index")
#else
    Bundle.main.url(forResource: "main", withExtension: "jsbundle")
#endif
  }
}


================================================
FILE: examples/SampleApp/ios/SampleApp/Images.xcassets/AppIcon.appiconset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "CometChat_React_Native_40x40.png",
      "idiom" : "iphone",
      "scale" : "2x",
      "size" : "20x20"
    },
    {
      "filename" : "CometChat_React_Native_60x60.png",
      "idiom" : "iphone",
      "scale" : "3x",
      "size" : "20x20"
    },
    {
      "filename" : "CometChat_React_Native_58x58.png",
      "idiom" : "iphone",
      "scale" : "2x",
      "size" : "29x29"
    },
    {
      "filename" : "CometChat_React_Native_87x87.png",
      "idiom" : "iphone",
      "scale" : "3x",
      "size" : "29x29"
    },
    {
      "filename" : "CometChat_React_Native_80x80.png",
      "idiom" : "iphone",
      "scale" : "2x",
      "size" : "40x40"
    },
    {
      "filename" : "CometChat_React_Native_120x120 1.png",
      "idiom" : "iphone",
      "scale" : "3x",
      "size" : "40x40"
    },
    {
      "filename" : "CometChat_React_Native_120x120.png",
      "idiom" : "iphone",
      "scale" : "2x",
      "size" : "60x60"
    },
    {
      "filename" : "CometChat_React_Native_180x180.png",
      "idiom" : "iphone",
      "scale" : "3x",
      "size" : "60x60"
    },
    {
      "filename" : "CometChat React native.png",
      "idiom" : "ios-marketing",
      "scale" : "1x",
      "size" : "1024x1024"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: examples/SampleApp/ios/SampleApp/Images.xcassets/Contents.json
================================================
{
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}


================================================
FILE: examples/SampleApp/ios/SampleApp/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleDisplayName</key>
	<string>sampleapp</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>$(MARKETING_VERSION)</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>$(CURRENT_PROJECT_VERSION)</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>NSAppTransportSecurity</key>
	<dict>
	<key>NSAllowsArbitraryLoads</key>
	<false/>
	<key>NSAllowsLocalNetworking</key>
	<true/>
	</dict>
	<key>NSCameraUsageDescription</key>
	<string>This is for Camera permission</string>
	<key>NSLocationWhenInUseUsageDescription</key>
	<string></string>
	<key>NSMicrophoneUsageDescription</key>
	<string>This is for Mic permission</string>
	<key>RCTNewArchEnabled</key>
	<true/>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>arm64</string>
	</array>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UISupportedInterfaceOrientations~ipad</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UIViewControllerBasedStatusBarAppearance</key>
	<false/>
	<key>UIAppFonts</key>
  	<array>
		<string>inter_regular.ttf</string>
  		<string>inter_medium.ttf</string>
  		<string>inter_bold.ttf</string>
  		<string>roboto_regular.ttf</string>
  		<string>roboto_medium.ttf</string>
  		<string>roboto_bold.ttf</string>
  		<string>times_new_roman_regular.ttf</string>
  		<string>times_new_roman_medium.otf</string>
  		<string>times_new_roman_bold.ttf</string>
  	</array>
</dict>
</plist>


================================================
FILE: examples/SampleApp/ios/SampleApp/LaunchScreen.storyboard
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
    <device id="retina6_1" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
        <capability name="System colors in document resources" minToolsVersion="11.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <scenes>
        <!--View Controller-->
        <scene sceneID="EHf-IW-A2E">
            <objects>
                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
                        <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <imageView clipsSubviews="YES"
                                       userInteractionEnabled="NO"
                                       contentMode="scaleAspectFit"
                                       horizontalHuggingPriority="251"
                                       verticalHuggingPriority="251"
                                       image="CometChat React native.png"
                                       translatesAutoresizingMaskIntoConstraints="NO"
                                       id="CtN-Dg-ods">
                                <!-- The rect is now just an initial placeholder -->
                                <rect key="frame" x="0" y="0" width="414" height="128"/>
                            </imageView>
                        </subviews>
                        <!-- Auto Layout constraints for centering and sizing the image view -->
                        <constraints>
                            <constraint firstItem="CtN-Dg-ods" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="centerXConstraint"/>
                            <constraint firstItem="CtN-Dg-ods" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="centerYConstraint"/>
                            <constraint firstItem="CtN-Dg-ods" firstAttribute="width" constant="414" id="widthConstraint"/>
                            <constraint firstItem="CtN-Dg-ods" firstAttribute="height" constant="128" id="heightConstraint"/>
                        </constraints>
                        <viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="52.173913043478265" y="375"/>
        </scene>
    </scenes>
    <resources>
        <image name="CometChat React native.png" width="1024" height="1024"/>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>


================================================
FILE: examples/SampleApp/ios/SampleApp/PrivacyInfo.xcprivacy
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>NSPrivacyAccessedAPITypes</key>
	<array>
		<dict>
			<key>NSPrivacyAccessedAPIType</key>
			<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
			<key>NSPrivacyAccessedAPITypeReasons</key>
			<array>
				<string>C617.1</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyAccessedAPIType</key>
			<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
			<key>NSPrivacyAccessedAPITypeReasons</key>
			<array>
				<string>CA92.1</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyAccessedAPIType</key>
			<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
			<key>NSPrivacyAccessedAPITypeReasons</key>
			<array>
				<string>35F9.1</string>
			</array>
		</dict>
	</array>
	<key>NSPrivacyCollectedDataTypes</key>
	<array/>
	<key>NSPrivacyTracking</key>
	<false/>
</dict>
</plist>


================================================
FILE: examples/SampleApp/ios/SampleApp.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 54;
	objects = {

/* Begin PBXBuildFile section */
		13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
		295B57B00587C81464D7BEFE /* Pods_SampleApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D33CE56D95E35081CB0ADFD /* Pods_SampleApp.framework */; };
		761780ED2CA45674006654EE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 761780EC2CA45674006654EE /* AppDelegate.swift */; };
		81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
		BDCB18E08DA1EE3CCF31234A /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		1080499FF01EB6C0E2E655F6 /* Pods-SampleApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SampleApp.debug.xcconfig"; path = "Target Support Files/Pods-SampleApp/Pods-SampleApp.debug.xcconfig"; sourceTree = "<group>"; };
		13B07F961A680F5B00A75B9A /* SampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
		13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = SampleApp/Images.xcassets; sourceTree = "<group>"; };
		13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = SampleApp/Info.plist; sourceTree = "<group>"; };
		13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = SampleApp/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
		24B03C26D609B5A540B05A65 /* Pods-SampleApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SampleApp.release.xcconfig"; path = "Target Support Files/Pods-SampleApp/Pods-SampleApp.release.xcconfig"; sourceTree = "<group>"; };
		5D33CE56D95E35081CB0ADFD /* Pods_SampleApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SampleApp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		761780EC2CA45674006654EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = SampleApp/AppDelegate.swift; sourceTree = "<group>"; };
		81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = SampleApp/LaunchScreen.storyboard; sourceTree = "<group>"; };
		ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				295B57B00587C81464D7BEFE /* Pods_SampleApp.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		13B07FAE1A68108700A75B9A /* SampleApp */ = {
			isa = PBXGroup;
			children = (
				13B07FB51A68108700A75B9A /* Images.xcassets */,
				761780EC2CA45674006654EE /* AppDelegate.swift */,
				13B07FB61A68108700A75B9A /* Info.plist */,
				81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
				13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */,
			);
			name = SampleApp;
			sourceTree = "<group>";
		};
		2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
				5D33CE56D95E35081CB0ADFD /* Pods_SampleApp.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		832341AE1AAA6A7D00B99B32 /* Libraries */ = {
			isa = PBXGroup;
			children = (
			);
			name = Libraries;
			sourceTree = "<group>";
		};
		83CBB9F61A601CBA00E9B192 = {
			isa = PBXGroup;
			children = (
				13B07FAE1A68108700A75B9A /* SampleApp */,
				832341AE1AAA6A7D00B99B32 /* Libraries */,
				83CBBA001A601CBA00E9B192 /* Products */,
				2D16E6871FA4F8E400B85C8A /* Frameworks */,
				BBD78D7AC51CEA395F1C20DB /* Pods */,
			);
			indentWidth = 2;
			sourceTree = "<group>";
			tabWidth = 2;
			usesTabs = 0;
		};
		83CBBA001A601CBA00E9B192 /* Products */ = {
			isa = PBXGroup;
			children = (
				13B07F961A680F5B00A75B9A /* SampleApp.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		BBD78D7AC51CEA395F1C20DB /* Pods */ = {
			isa = PBXGroup;
			children = (
				1080499FF01EB6C0E2E655F6 /* Pods-SampleApp.debug.xcconfig */,
				24B03C26D609B5A540B05A65 /* Pods-SampleApp.release.xcconfig */,
			);
			path = Pods;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		13B07F861A680F5B00A75B9A /* SampleApp */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "SampleApp" */;
			buildPhases = (
				93A7E3EE15C66A560927690C /* [CP] Check Pods Manifest.lock */,
				13B07F871A680F5B00A75B9A /* Sources */,
				13B07F8C1A680F5B00A75B9A /* Frameworks */,
				13B07F8E1A680F5B00A75B9A /* Resources */,
				00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
				B26D7914AEF39D3B5D13EA59 /* [CP] Embed Pods Frameworks */,
				313738ECC7D8394BE4D3F3F3 /* [CP] Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = SampleApp;
			productName = SampleApp;
			productReference = 13B07F961A680F5B00A75B9A /* SampleApp.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		83CBB9F71A601CBA00E9B192 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 1210;
				TargetAttributes = {
					13B07F861A680F5B00A75B9A = {
						LastSwiftMigration = 1120;
					};
				};
			};
			buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "SampleApp" */;
			compatibilityVersion = "Xcode 12.0";
			developmentRegion = en;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 83CBB9F61A601CBA00E9B192;
			productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				13B07F861A680F5B00A75B9A /* SampleApp */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		13B07F8E1A680F5B00A75B9A /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
				13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
				BDCB18E08DA1EE3CCF31234A /* PrivacyInfo.xcprivacy in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
				"$(SRCROOT)/.xcode.env.local",
				"$(SRCROOT)/.xcode.env",
			);
			name = "Bundle React Native code and images";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
		};
		313738ECC7D8394BE4D3F3F3 /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputFileListPaths = (
				"${PODS_ROOT}/Target Support Files/Pods-SampleApp/Pods-SampleApp-resources-${CONFIGURATION}-input-files.xcfilelist",
			);
			name = "[CP] Copy Pods Resources";
			outputFileListPaths = (
				"${PODS_ROOT}/Target Support Files/Pods-SampleApp/Pods-SampleApp-resources-${CONFIGURATION}-output-files.xcfilelist",
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SampleApp/Pods-SampleApp-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		93A7E3EE15C66A560927690C /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputFileListPaths = (
			);
			inputPaths = (
				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
				"${PODS_ROOT}/Manifest.lock",
			);
			name = "[CP] Check Pods Manifest.lock";
			outputFileListPaths = (
			);
			outputPaths = (
				"$(DERIVED_FILE_DIR)/Pods-SampleApp-checkManifestLockResult.txt",
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
			showEnvVarsInLog = 0;
		};
		B26D7914AEF39D3B5D13EA59 /* [CP] Embed Pods Frameworks */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputFileListPaths = (
				"${PODS_ROOT}/Target Support Files/Pods-SampleApp/Pods-SampleApp-frameworks-${CONFIGURATION}-input-files.xcfilelist",
			);
			name = "[CP] Embed Pods Frameworks";
			outputFileListPaths = (
				"${PODS_ROOT}/Target Support Files/Pods-SampleApp/Pods-SampleApp-frameworks-${CONFIGURATION}-output-files.xcfilelist",
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SampleApp/Pods-SampleApp-frameworks.sh\"\n";
			showEnvVarsInLog = 0;
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		13B07F871A680F5B00A75B9A /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				761780ED2CA45674006654EE /* AppDelegate.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
		13B07F941A680F5B00A75B9A /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 1080499FF01EB6C0E2E655F6 /* Pods-SampleApp.debug.xcconfig */;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ENABLE_MODULES = YES;
				CURRENT_PROJECT_VERSION = 1;
				DEVELOPMENT_TEAM = T9F7QDSC2S;
				ENABLE_BITCODE = NO;
				INFOPLIST_FILE = SampleApp/Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 15.1;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
				);
				MARKETING_VERSION = v5.3.4;
				OTHER_LDFLAGS = (
					"$(inherited)",
					"-ObjC",
					"-lc++",
				);
				PRODUCT_BUNDLE_IDENTIFIER = com.cometchat.internal.reactnative.ios;
				PRODUCT_NAME = SampleApp;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 5.0;
				VERSIONING_SYSTEM = "apple-generic";
			};
			name = Debug;
		};
		13B07F951A680F5B00A75B9A /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 24B03C26D609B5A540B05A65 /* Pods-SampleApp.release.xcconfig */;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ENABLE_MODULES = YES;
				CURRENT_PROJECT_VERSION = 1;
				DEVELOPMENT_TEAM = T9F7QDSC2S;
				INFOPLIST_FILE = SampleApp/Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 15.1;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
				);
				MARKETING_VERSION = v5.3.4;
				OTHER_LDFLAGS = (
					"$(inherited)",
					"-ObjC",
					"-lc++",
				);
				PRODUCT_BUNDLE_IDENTIFIER = com.cometchat.internal.reactnative.ios;
				PRODUCT_NAME = SampleApp;
				SWIFT_VERSION = 5.0;
				VERSIONING_SYSTEM = "apple-generic";
			};
			name = Release;
		};
		83CBBA201A601CBA00E9B192 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "c++20";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				HEADER_SEARCH_PATHS = (
					"$(inherited)",
					"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers",
					"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios",
					"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers",
					"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
				);
				IPHONEOS_DEPLOYMENT_TARGET = 15.1;
				LD_RUNPATH_SEARCH_PATHS = (
					/usr/lib/swift,
					"$(inherited)",
				);
				LIBRARY_SEARCH_PATHS = (
					"\"$(SDKROOT)/usr/lib/swift\"",
					"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
					"\"$(inherited)\"",
				);
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				OTHER_CPLUSPLUSFLAGS = (
					"$(OTHER_CFLAGS)",
					"-DFOLLY_NO_CONFIG",
					"-DFOLLY_MOBILE=1",
					"-DFOLLY_USE_LIBCPP=1",
					"-DFOLLY_CFG_NO_COROUTINES=1",
					"-DFOLLY_HAVE_CLOCK_GETTIME=1",
				);
				REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
				SDKROOT = iphoneos;
				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
				USE_HERMES = true;
			};
			name = Debug;
		};
		83CBBA211A601CBA00E9B192 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "c++20";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = YES;
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				HEADER_SEARCH_PATHS = (
					"$(inherited)",
					"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers",
					"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios",
					"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers",
					"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
				);
				IPHONEOS_DEPLOYMENT_TARGET = 15.1;
				LD_RUNPATH_SEARCH_PATHS = (
					/usr/lib/swift,
					"$(inherited)",
				);
				LIBRARY_SEARCH_PATHS = (
					"\"$(SDKROOT)/usr/lib/swift\"",
					"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
					"\"$(inherited)\"",
				);
				MTL_ENABLE_DEBUG_INFO = NO;
				OTHER_CPLUSPLUSFLAGS = (
					"$(OTHER_CFLAGS)",
					"-DFOLLY_NO_CONFIG",
					"-DFOLLY_MOBILE=1",
					"-DFOLLY_USE_LIBCPP=1",
					"-DFOLLY_CFG_NO_COROUTINES=1",
					"-DFOLLY_HAVE_CLOCK_GETTIME=1",
				);
				REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
				SDKROOT = iphoneos;
				USE_HERMES = true;
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "SampleApp" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				13B07F941A680F5B00A75B9A /* Debug */,
				13B07F951A680F5B00A75B9A /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "SampleApp" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				83CBBA201A601CBA00E9B192 /* Debug */,
				83CBBA211A601CBA00E9B192 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
}


================================================
FILE: examples/SampleApp/ios/SampleApp.xcodeproj/xcshareddata/xcschemes/SampleApp.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
   LastUpgradeVersion = "1210"
   version = "1.3">
   <BuildAction
      parallelizeBuildables = "YES"
      buildImplicitDependencies = "YES">
      <BuildActionEntries>
         <BuildActionEntry
            buildForTesting = "YES"
            buildForRunning = "YES"
            buildForProfiling = "YES"
            buildForArchiving = "YES"
            buildForAnalyzing = "YES">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
               BuildableName = "SampleApp.app"
               BlueprintName = "SampleApp"
               ReferencedContainer = "container:SampleApp.xcodeproj">
            </BuildableReference>
         </BuildActionEntry>
      </BuildActionEntries>
   </BuildAction>
   <TestAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      shouldUseLaunchSchemeArgsEnv = "YES">
      <Testables>
         <TestableReference
            skipped = "NO">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "00E356ED1AD99517003FC87E"
               BuildableName = "SampleAppTests.xctest"
               BlueprintName = "SampleAppTests"
               ReferencedContainer = "container:SampleApp.xcodeproj">
            </BuildableReference>
         </TestableReference>
      </Testables>
   </TestAction>
   <LaunchAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      launchStyle = "0"
      useCustomWorkingDirectory = "NO"
      ignoresPersistentStateOnLaunch = "NO"
      debugDocumentVersioning = "YES"
      debugServiceExtension = "internal"
      allowLocationSimulation = "YES">
      <BuildableProductRunnable
         runnableDebuggingMode = "0">
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
            BuildableName = "SampleApp.app"
            BlueprintName = "SampleApp"
            ReferencedContainer = "container:SampleApp.xcodeproj">
         </BuildableReference>
      </BuildableProductRunnable>
   </LaunchAction>
   <ProfileAction
      buildConfiguration = "Release"
      shouldUseLaunchSchemeArgsEnv = "YES"
      savedToolIdentifier = ""
      useCustomWorkingDirectory = "NO"
      debugDocumentVersioning = "YES">
      <BuildableProductRunnable
         runnableDebuggingMode = "0">
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
            BuildableName = "SampleApp.app"
            BlueprintName = "SampleApp"
            ReferencedContainer = "container:SampleApp.xcodeproj">
         </BuildableReference>
      </BuildableProductRunnable>
   </ProfileAction>
   <AnalyzeAction
      buildConfiguration = "Debug">
   </AnalyzeAction>
   <ArchiveAction
      buildConfiguration = "Release"
      revealArchiveInOrganizer = "YES">
   </ArchiveAction>
</Scheme>


================================================
FILE: examples/SampleApp/ios/SampleApp.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
   version = "1.0">
   <FileRef
      location = "group:SampleApp.xcodeproj">
   </FileRef>
   <FileRef
      location = "group:Pods/Pods.xcodeproj">
   </FileRef>
</Workspace>


================================================
FILE: examples/SampleApp/ios/SampleApp.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>


================================================
FILE: examples/SampleApp/jest.config.js
================================================
module.exports = {
  preset: 'react-native',
};


================================================
FILE: examples/SampleApp/metro.config.js
================================================
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');

/**
 * Metro configuration
 * https://reactnative.dev/docs/metro
 *
 * @type {import('@react-native/metro-config').MetroConfig}
 */
const config = {};

module.exports = mergeConfig(getDefaultConfig(__dirname), config);


================================================
FILE: examples/SampleApp/package.json
================================================
{
  "name": "sample-app",
  "version": "5.3.4",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "lint": "eslint .",
    "start": "react-native start",
    "test": "jest"
  },
  "dependencies": {
    "@cometchat/calls-sdk-react-native": "^4.4.0",
    "@cometchat/chat-sdk-react-native": "^4.0.21",
    "@cometchat/chat-uikit-react-native": "^5.3.4",
    "@react-native-async-storage/async-storage": "^2.2.0",
    "@react-native-clipboard/clipboard": "^1.16.3",
    "@react-native-community/datetimepicker": "^8.4.5",
    "@react-native-community/netinfo": "^11.4.1",
    "@react-native/new-app-screen": "0.81.4",
    "@react-navigation/bottom-tabs": "^7.4.7",
    "@react-navigation/native": "^7.1.17",
    "@react-navigation/native-stack": "^7.14.12",
    "@react-navigation/stack": "^7.4.8",
    "dayjs": "^1.11.18",
    "react": "19.1.0",
    "react-native": "0.81.4",
    "react-native-background-timer": "^2.4.1",
    "react-native-callstats": "^3.73.22",
    "react-native-gesture-handler": "^2.28.0",
    "react-native-localize": "^3.5.2",
    "react-native-safe-area-context": "^5.5.2",
    "react-native-screens": "^4.16.0",
    "react-native-svg": "^15.13.0",
    "react-native-video": "^6.16.1",
    "react-native-vision-camera": "^4.7.2",
    "react-native-webrtc": "^124.0.7",
    "zustand": "^5.0.8"
  },
  "devDependencies": {
    "@babel/core": "^7.25.2",
    "@babel/preset-env": "^7.25.3",
    "@babel/runtime": "^7.25.0",
    "@react-native-community/cli": "20.0.0",
    "@react-native-community/cli-platform-android": "20.0.0",
    "@react-native-community/cli-platform-ios": "20.0.0",
    "@react-native/babel-preset": "0.81.4",
    "@react-native/eslint-config": "0.81.4",
    "@react-native/metro-config": "0.81.4",
    "@react-native/typescript-config": "0.81.4",
    "@types/jest": "^29.5.13",
    "@types/react": "^19.1.0",
    "@types/react-test-renderer": "^19.1.0",
    "eslint": "^8.19.0",
    "jest": "^29.6.3",
    "prettier": "2.8.8",
    "react-test-renderer": "19.1.0",
    "typescript": "^5.8.3"
  },
  "engines": {
    "node": ">=20"
  }
}


================================================
FILE: examples/SampleApp/src/assets/icons/AccountCircle.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M5.743 17.438q1.485-1.047 3-1.609a9.3 9.3 0 0 1 3.256-.562q1.742 0 3.26.562 1.52.563 3.02 1.608 1.046-1.262 1.508-2.601a8.6 8.6 0 0 0 .462-2.835q0-3.497-2.377-5.874T12 3.75 6.126 6.127Q3.75 8.505 3.75 12.001q0 1.496.471 2.835.471 1.34 1.523 2.601m6.255-4.638q-1.44 0-2.428-.989-.987-.989-.987-2.429t.988-2.428 2.43-.987 2.428.989q.987.988.987 2.428t-.989 2.428-2.429.988m.005 9.033a9.5 9.5 0 0 1-3.822-.777 10 10 0 0 1-3.128-2.113 10 10 0 0 1-2.11-3.124 9.5 9.5 0 0 1-.777-3.824q0-2.026.777-3.817a10 10 0 0 1 2.113-3.125 10 10 0 0 1 3.124-2.11 9.5 9.5 0 0 1 3.824-.776q2.025 0 3.818.777a10 10 0 0 1 3.124 2.113 10 10 0 0 1 2.11 3.125 9.5 9.5 0 0 1 .776 3.814q0 2.027-.777 3.822a10 10 0 0 1-2.112 3.129 10 10 0 0 1-3.126 2.11 9.5 9.5 0 0 1-3.814.776m-.004-1.583q1.342 0 2.586-.387 1.244-.388 2.447-1.296a10.3 10.3 0 0 0-2.455-1.277A7.7 7.7 0 0 0 12 16.85a7.9 7.9 0 0 0-2.584.433q-1.26.434-2.451 1.284 1.204.907 2.447 1.296A8.6 8.6 0 0 0 12 20.25m0-9.033q.795 0 1.315-.519.518-.519.518-1.315t-.518-1.314-1.315-.519-1.314.519-.519 1.314.519 1.315 1.314.519'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/AddComment.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M11.212 10.783v2.338q0 .333.228.564.228.232.562.232t.564-.232a.77.77 0 0 0 .229-.564v-2.338h2.338q.333 0 .564-.232a.77.77 0 0 0 .232-.562.76.76 0 0 0-.232-.56.77.77 0 0 0-.564-.229h-2.338V6.854a.76.76 0 0 0-.232-.556.77.77 0 0 0-.567-.231.75.75 0 0 0-.56.231.77.77 0 0 0-.224.556V9.2H8.866a.75.75 0 0 0-.56.234.78.78 0 0 0-.227.56q0 .327.227.558a.76.76 0 0 0 .56.231zm-5.15 7.067L3.516 20.4q-.375.375-.862.175-.488-.2-.488-.73V3.734q0-.64.471-1.112A1.52 1.52 0 0 1 3.75 2.15h16.5q.64 0 1.112.471.471.472.471 1.112v12.534q0 .64-.47 1.112a1.52 1.52 0 0 1-1.113.471zm-.667-1.583h14.854V3.733H3.75v14.275z'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/AiIcon.tsx
================================================
import Svg, { Path, Defs, LinearGradient, Stop } from "react-native-svg";
import type { SvgProps } from "react-native-svg";

const AiIcon = ({ width = 24, height = 24 }: SvgProps) => (
  <Svg
    width={width}
    height={height}
    viewBox="0 0 14 14"
    fill="none"
  >
    <Path
      d="M4.06663 7.53366L4.485 8.37042C4.6266 8.6536 4.6974 8.7952 4.79198 8.9179C4.8759 9.02678 4.97351 9.12438 5.08239 9.20831C5.20509 9.30289 5.34668 9.37369 5.62987 9.51528L6.46663 9.93366L5.62987 10.352C5.34668 10.4936 5.20509 10.5644 5.08239 10.659C4.97351 10.7429 4.8759 10.8405 4.79198 10.9494C4.6974 11.0721 4.6266 11.2137 4.485 11.4969L4.06663 12.3337L3.64825 11.4969C3.50665 11.2137 3.43586 11.0721 3.34128 10.9494C3.25735 10.8405 3.15974 10.7429 3.05086 10.659C2.92816 10.5644 2.78657 10.4936 2.50338 10.352L1.66663 9.93366L2.50338 9.51528C2.78657 9.37369 2.92816 9.30289 3.05086 9.20831C3.15974 9.12438 3.25735 9.02678 3.34128 8.9179C3.43586 8.7952 3.50665 8.6536 3.64825 8.37041L4.06663 7.53366Z"
      fill="url(#paint0_linear)"
    />
    <Path
      d="M8.59996 1.66699L9.22856 3.30135C9.37896 3.6924 9.45417 3.88793 9.57111 4.0524C9.67476 4.19817 9.80212 4.32552 9.94788 4.42917C10.1124 4.54612 10.3079 4.62132 10.6989 4.77173L12.3333 5.40033L10.6989 6.02892C10.3079 6.17933 10.1124 6.25453 9.94788 6.37148C9.80212 6.47513 9.67476 6.60248 9.57111 6.74825C9.45417 6.91272 9.37896 7.10825 9.22856 7.4993L8.59996 9.13366L7.97136 7.4993C7.82095 7.10825 7.74575 6.91272 7.62881 6.74825C7.52516 6.60248 7.3978 6.47513 7.25204 6.37148C7.08757 6.25453 6.89204 6.17933 6.50098 6.02892L4.86663 5.40033L6.50098 4.77173C6.89204 4.62132 7.08757 4.54612 7.25203 4.42917C7.3978 4.32552 7.52516 4.19817 7.62881 4.0524C7.74575 3.88793 7.82095 3.6924 7.97136 3.30135L8.59996 1.66699Z"
      fill="url(#paint1_linear)"
    />
    <Defs>
      <LinearGradient
        id="paint0_linear"
        x1="6.99996"
        y1="1.66699"
        x2="6.99996"
        y2="19.2003"
        gradientUnits="userSpaceOnUse"
      >
        <Stop stopColor="#AD94F2" />
        <Stop offset="1" stopColor="#3302B8" />
      </LinearGradient>
      <LinearGradient
        id="paint1_linear"
        x1="6.99996"
        y1="1.66699"
        x2="6.99996"
        y2="19.2003"
        gradientUnits="userSpaceOnUse"
      >
        <Stop stopColor="#AD94F2" />
        <Stop offset="1" stopColor="#3302B8" />
      </LinearGradient>
    </Defs>
  </Svg>
);

export default AiIcon;


================================================
FILE: examples/SampleApp/src/assets/icons/ArrowBack.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='m7.193 12.787 5.366 5.367a.8.8 0 0 1 .24.563.75.75 0 0 1-.236.554.79.79 0 0 1-.562.243.74.74 0 0 1-.554-.243L4.73 12.554a.75.75 0 0 1-.185-.256.8.8 0 0 1-.057-.298.8.8 0 0 1 .057-.298.8.8 0 0 1 .185-.265l6.717-6.716a.76.76 0 0 1 .552-.234q.318 0 .564.234a.8.8 0 0 1 .238.564q0 .319-.238.557l-5.37 5.362h11.854a.76.76 0 0 1 .558.23.77.77 0 0 1 .229.566.76.76 0 0 1-.229.562.77.77 0 0 1-.558.225z'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/Block.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M12.002 21.833a9.6 9.6 0 0 1-3.834-.774 10 10 0 0 1-3.123-2.105 9.9 9.9 0 0 1-2.104-3.12 9.6 9.6 0 0 1-.773-3.833q0-2.043.775-3.835a10 10 0 0 1 2.104-3.122 9.9 9.9 0 0 1 3.12-2.104A9.6 9.6 0 0 1 12 2.166q2.043 0 3.835.775a10 10 0 0 1 3.122 2.104 9.9 9.9 0 0 1 2.105 3.12 9.6 9.6 0 0 1 .772 3.833q0 2.043-.774 3.835a10 10 0 0 1-2.104 3.122 9.9 9.9 0 0 1-3.12 2.105 9.6 9.6 0 0 1-3.834.772m0-1.583q1.469 0 2.816-.488a8 8 0 0 0 2.45-1.412L5.655 6.733a8.6 8.6 0 0 0-1.408 2.46A8 8 0 0 0 3.751 12q0 3.452 2.4 5.851 2.398 2.4 5.85 2.399m6.33-2.983a8.8 8.8 0 0 0 1.407-2.449A7.9 7.9 0 0 0 20.25 12q0-3.452-2.399-5.851t-5.85-2.399q-1.464 0-2.807.496a8.4 8.4 0 0 0-2.46 1.42z'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/Builder.tsx
================================================
import React from "react";
import Svg, { Path, SvgProps } from "react-native-svg";


const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d="M2.30775 17.5C1.81058 17.5 1.385 17.323 1.031 16.969C0.677 16.615 0.5 16.1894 0.5 15.6923V2.30775C0.5 1.81058 0.677 1.385 1.031 1.031C1.385 0.677 1.81058 0.5 2.30775 0.5H15.6923C16.1894 0.5 16.615 0.677 16.969 1.031C17.323 1.385 17.5 1.81058 17.5 2.30775V15.6923C17.5 16.1894 17.323 16.615 16.969 16.969C16.615 17.323 16.1894 17.5 15.6923 17.5H2.30775ZM2.30775 16H15.6923C15.7821 16 15.8558 15.9712 15.9135 15.9135C15.9712 15.8558 16 15.7821 16 15.6923V4H2V15.6923C2 15.7821 2.02883 15.8558 2.0865 15.9135C2.14417 15.9712 2.21792 16 2.30775 16ZM9 13.5C7.77433 13.5 6.67533 13.1757 5.703 12.527C4.7305 11.8782 4.01217 11.0358 3.548 10C4.01217 8.96417 4.7305 8.12183 5.703 7.473C6.67533 6.82433 7.77433 6.5 9 6.5C10.2257 6.5 11.3247 6.82433 12.297 7.473C13.2695 8.12183 13.9878 8.96417 14.452 10C13.9878 11.0358 13.2695 11.8782 12.297 12.527C11.3247 13.1757 10.2257 13.5 9 13.5ZM9 12.3077C9.86283 12.3077 10.6568 12.1045 11.3818 11.698C12.1068 11.2917 12.6955 10.7257 13.148 10C12.6955 9.27433 12.1068 8.70833 11.3818 8.302C10.6568 7.8955 9.86283 7.69225 9 7.69225C8.13717 7.69225 7.34325 7.8955 6.61825 8.302C5.89325 8.70833 5.3045 9.27433 4.852 10C5.3045 10.7257 5.89325 11.2917 6.61825 11.698C7.34325 12.1045 8.13717 12.3077 9 12.3077ZM9.00225 11.3077C9.36608 11.3077 9.67458 11.1803 9.92775 10.9255C10.1811 10.6708 10.3077 10.3616 10.3077 9.99775C10.3077 9.63392 10.1803 9.32542 9.9255 9.07225C9.67083 8.81892 9.36158 8.69225 8.99775 8.69225C8.63392 8.69225 8.32542 8.81967 8.07225 9.0745C7.81892 9.32917 7.69225 9.63842 7.69225 10.0022C7.69225 10.3661 7.81967 10.6746 8.0745 10.9277C8.32917 11.1811 8.63842 11.3077 9.00225 11.3077Z"
    />
  </Svg>
);

export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/Call.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M19.751 20.833q-2.892 0-5.862-1.368-2.97-1.37-5.467-3.886-2.517-2.496-3.885-5.462-1.37-2.967-1.369-5.872 0-.458.31-.768t.773-.31h3.567q.35 0 .598.235T8.75 4l.666 3.194q.042.336-.026.617a1 1 0 0 1-.26.476L6.705 10.75q.605 1.041 1.305 1.953.702.91 1.545 1.735.859.882 1.82 1.626.96.742 2.026 1.336l2.384-2.417q.23-.246.523-.337t.593-.046l3.081.649q.37.089.611.38a1 1 0 0 1 .241.654v3.467q0 .464-.309.774a1.05 1.05 0 0 1-.774.31M5.922 9.283l1.9-1.916-.538-2.617H4.772q.058 1.025.33 2.142.27 1.116.82 2.391m8.967 8.867q.987.459 2.128.742 1.14.283 2.234.341v-2.516l-2.466-.521z'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/CallFill.tsx
================================================
import Svg, { Mask, Path, G } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Mask
      id='prefix__a'
      width={24}
      height={24}
      x={0}
      y={0}
      maskUnits='userSpaceOnUse'
      style={{
        maskType: "alpha",
      }}
    >
      <Path fill='#D9D9D9' d='M0 0h24v24H0z' />
    </Mask>
    <G mask='url(#prefix__a)'>
      <Path
        fill={color}
        d='M19.44 20.5q-2.827 0-5.68-1.314t-5.246-3.709q-2.385-2.395-3.7-5.242Q3.5 7.386 3.5 4.56A1.034 1.034 0 0 1 4.55 3.5h3.262q.378 0 .668.247t.368.61L9.421 7.3q.06.41-.025.704-.084.293-.304.494l-2.31 2.248q.558 1.02 1.275 1.932.716.91 1.55 1.74a17.2 17.2 0 0 0 3.753 2.842l2.244-2.264q.235-.245.568-.342.334-.099.694-.048l2.776.565q.38.1.619.387.24.285.239.65v3.242q0 .45-.305.75t-.755.3'
      />
    </G>
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/Chat.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M6.062 17.85 3.516 20.4q-.375.375-.862.175-.488-.2-.488-.73V3.734q0-.64.471-1.112A1.52 1.52 0 0 1 3.75 2.15h16.5q.64 0 1.112.471.471.472.471 1.112v12.534q0 .64-.47 1.112a1.52 1.52 0 0 1-1.113.471zm-.667-1.583h14.854V3.733H3.75v14.275zm1.5-2.334h6.15a.76.76 0 0 0 .556-.232.77.77 0 0 0 .231-.562.76.76 0 0 0-.231-.56.76.76 0 0 0-.556-.229h-6.15a.77.77 0 0 0-.564.233.76.76 0 0 0-.232.557q0 .335.232.564a.77.77 0 0 0 .564.23m0-3.133h10.217a.76.76 0 0 0 .556-.232.77.77 0 0 0 .231-.562.76.76 0 0 0-.232-.56.76.76 0 0 0-.555-.23H6.895a.77.77 0 0 0-.564.234.76.76 0 0 0-.232.557q0 .335.232.564.231.23.564.229m0-3.133h10.217a.76.76 0 0 0 .556-.232.77.77 0 0 0 .231-.563.76.76 0 0 0-.232-.56.76.76 0 0 0-.555-.229H6.895a.77.77 0 0 0-.564.233.76.76 0 0 0-.232.558q0 .334.232.564.231.229.564.229'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/Chatfill.tsx
================================================
import Svg, { Mask, Path, G } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Mask
      id='prefix__a'
      width={24}
      height={24}
      x={0}
      y={0}
      maskUnits='userSpaceOnUse'
      style={{
        maskType: "alpha",
      }}
    >
      <Path fill='#D9D9D9' d='M0 0h24v24H0z' />
    </Mask>
    <G mask='url(#prefix__a)'>
      <Path
        fill={color}
        d='m6.039 17.5-2.002 2.002q-.427.426-.982.192-.555-.235-.555-.84V4.308q0-.758.525-1.283T4.308 2.5h15.384q.758 0 1.283.525t.525 1.283v11.384q0 .758-.525 1.283t-1.283.525zM7 13.75h6q.319 0 .534-.216A.73.73 0 0 0 13.75 13a.73.73 0 0 0-.216-.534.73.73 0 0 0-.534-.216H7a.73.73 0 0 0-.534.216.73.73 0 0 0-.216.534q0 .32.216.534A.73.73 0 0 0 7 13.75m0-3h10q.318 0 .534-.216A.73.73 0 0 0 17.75 10a.73.73 0 0 0-.216-.534A.73.73 0 0 0 17 9.25H7a.73.73 0 0 0-.534.216.73.73 0 0 0-.216.534q0 .32.216.534A.73.73 0 0 0 7 10.75m0-3h10q.318 0 .534-.216A.73.73 0 0 0 17.75 7a.73.73 0 0 0-.216-.535A.73.73 0 0 0 17 6.25H7a.73.73 0 0 0-.534.216A.73.73 0 0 0 6.25 7q0 .32.216.535A.73.73 0 0 0 7 7.75'
      />
    </G>
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/CheckFill.tsx
================================================
import Svg, { Mask, Path, G } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Mask
      id='prefix__a'
      width={24}
      height={24}
      x={0}
      y={0}
      maskUnits='userSpaceOnUse'
      style={{
        maskType: "alpha",
      }}
    >
      <Path fill='#D9D9D9' d='M0 0h24v24H0z' />
    </Mask>
    <G mask='url(#prefix__a)'>
      <Path
        fill={color}
        d='m9.551 15.516 8.639-8.639a.73.73 0 0 1 .522-.228q.299-.005.532.228a.74.74 0 0 1 .232.535q0 .302-.232.534l-9.06 9.075a.87.87 0 0 1-.633.271.87.87 0 0 1-.633-.27l-4.175-4.176a.71.71 0 0 1-.22-.53.75.75 0 0 1 .236-.539.74.74 0 0 1 .534-.233q.303 0 .535.233z'
      />
    </G>
  </Svg>
);
export default SvgComponent;

================================================
FILE: examples/SampleApp/src/assets/icons/Close.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M11.999 13.117 6.895 18.22a.763.763 0 0 1-1.117-.004.766.766 0 0 1 .004-1.1l5.1-5.117-5.1-5.117a.74.74 0 0 1-.229-.544q0-.315.23-.556a.74.74 0 0 1 .55-.244.78.78 0 0 1 .562.232l5.104 5.112 5.112-5.112a.75.75 0 0 1 .555-.232.78.78 0 0 1 .562.244.76.76 0 0 1 .223.556.77.77 0 0 1-.235.544L13.116 12l5.1 5.117a.74.74 0 0 1 .229.543q0 .314-.23.557a.74.74 0 0 1-.55.243.74.74 0 0 1-.553-.24z'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/Delete.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M6.734 20.833q-.655 0-1.12-.464a1.53 1.53 0 0 1-.464-1.119V5.55h-.204a.77.77 0 0 1-.564-.232.77.77 0 0 1-.232-.562q0-.33.232-.56a.77.77 0 0 1 .564-.23h3.89v-.012a.76.76 0 0 1 .23-.558.77.77 0 0 1 .564-.23h4.766q.324 0 .556.232.231.232.232.556v.013h3.9q.32 0 .552.232a.76.76 0 0 1 .231.558.76.76 0 0 1-.232.564.76.76 0 0 1-.555.229h-.213v13.7q0 .655-.464 1.119-.465.464-1.12.464zM17.284 5.55H6.734v13.7h10.55zm-7.29 11.62a.77.77 0 0 0 .559-.226.76.76 0 0 0 .23-.56V8.4a.77.77 0 0 0-.232-.565.76.76 0 0 0-.558-.23.76.76 0 0 0-.563.23.77.77 0 0 0-.23.565v7.983q0 .335.234.56a.78.78 0 0 0 .56.228m4.034 0a.77.77 0 0 0 .558-.226.76.76 0 0 0 .231-.56V8.4a.77.77 0 0 0-.233-.565.76.76 0 0 0-.557-.23.76.76 0 0 0-.564.23.77.77 0 0 0-.23.565v7.983q0 .335.235.56a.78.78 0 0 0 .56.228'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/Flash.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";

const SvgComponent = ({ width = 24, height = 24, color }: SvgProps) => (
  <Svg
    width={width}
    height={height}
    viewBox="0 0 24 24"
    fill="none"
  >
    <Path
      d="M18 2H6V8L8 11V22H16V11L18 8V2ZM16 4V5H8V4H16ZM14 10.4V20H10V10.39L8 7.39V7H16V7.39L14 10.4Z"
      fill={color || "#F9F8FD"}
    />
    <Path
      d="M12 15.5C12.8284 15.5 13.5 14.8284 13.5 14C13.5 13.1716 12.8284 12.5 12 12.5C11.1716 12.5 10.5 13.1716 10.5 14C10.5 14.8284 11.1716 15.5 12 15.5Z"
      fill={color || "#F9F8FD"}
    />
  </Svg>
);

export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/Group.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M1.21 17.381q0-.85.431-1.54.43-.69 1.2-1.04 1.72-.776 3.2-1.137 1.478-.36 3.024-.36t3.013.36q1.468.361 3.186 1.136.771.35 1.211 1.04t.44 1.541v.819q0 .653-.465 1.118t-1.118.465H2.794q-.66 0-1.122-.465a1.53 1.53 0 0 1-.461-1.118zm20 2.402h-3.1q.159-.383.274-.77.114-.386.114-.813v-.817q0-1.41-.654-2.384-.654-.975-1.979-1.628 1.537.191 2.89.535 1.351.344 2.29.831.82.463 1.285 1.121.464.66.464 1.473v.865q0 .66-.465 1.123-.465.464-1.118.464M9.066 12q-1.62 0-2.677-1.056T5.332 8.267 6.388 5.59t2.677-1.057q1.62 0 2.677 1.057t1.056 2.677-1.056 2.677Q10.685 12 9.065 12m9.033-3.743q0 1.61-1.056 2.67t-2.677 1.06q-.255 0-.596-.042a3 3 0 0 1-.604-.13 4.4 4.4 0 0 0 .944-1.565 5.9 5.9 0 0 0 .323-1.986q0-1.08-.323-1.962a5.2 5.2 0 0 0-.944-1.602q.271-.084.596-.126a5 5 0 0 1 .604-.04q1.62 0 2.677 1.059t1.056 2.664M2.794 18.2h12.538v-.815q0-.364-.209-.69a1.3 1.3 0 0 0-.512-.474q-1.655-.755-2.9-1.044-1.246-.29-2.642-.29-1.4 0-2.662.29-1.262.289-2.909 1.044-.312.15-.508.476-.195.327-.196.686zm6.27-7.783q.922 0 1.536-.613.615-.614.615-1.536t-.613-1.537-1.535-.614-1.537.613-.615 1.535q0 .922.613 1.537t1.535.615'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/GroupAdd.tsx
================================================
import type { SvgProps } from "react-native-svg";
import Svg, { Path } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M12.596 11.642q.638-.694.944-1.594t.306-1.856-.306-1.856a4.4 4.4 0 0 0-.944-1.594q1.317.151 2.187 1.138t.87 2.312q0 1.327-.87 2.313a3.33 3.33 0 0 1-2.187 1.137m4.863 7.666q.188-.345.288-.733.099-.389.099-.787v-.827q0-.817-.333-1.556a3.6 3.6 0 0 0-.944-1.267q1.15.384 2.117 1.033.967.65.967 1.79v.827q0 .633-.443 1.076a1.47 1.47 0 0 1-1.076.444zm2.194-8.558h-1.25a.73.73 0 0 1-.534-.216.73.73 0 0 1-.216-.534q0-.32.216-.535a.73.73 0 0 1 .534-.215h1.25V8q0-.319.216-.534a.73.73 0 0 1 .535-.216q.318 0 .534.216a.73.73 0 0 1 .215.534v1.25h1.25q.319 0 .535.216a.73.73 0 0 1 .215.534q0 .319-.215.534a.73.73 0 0 1-.535.216h-1.25V12q0 .318-.215.534a.73.73 0 0 1-.535.216.72.72 0 0 1-.534-.216.73.73 0 0 1-.216-.534zm-11.307.942q-1.444 0-2.472-1.028T4.846 8.192 5.874 5.72t2.472-1.028 2.472 1.028 1.028 2.472-1.028 2.472-2.472 1.028m-7.5 6.096v-.704q0-.735.399-1.36a2.66 2.66 0 0 1 1.066-.963 14.5 14.5 0 0 1 2.991-1.09 12.95 12.95 0 0 1 6.087 0q1.509.364 2.991 1.09.667.337 1.066.963.4.625.4 1.36v.704q0 .633-.444 1.076a1.47 1.47 0 0 1-1.075.444H2.364q-.632 0-1.076-.444a1.47 1.47 0 0 1-.443-1.076'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/GroupFill.tsx
================================================
import Svg, { Mask, Path, G } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Mask
      id='prefix__a'
      width={24}
      height={24}
      x={0}
      y={0}
      maskUnits='userSpaceOnUse'
      style={{
        maskType: "alpha",
      }}
    >
      <Path fill='#D9D9D9' d='M0 0h24v24H0z' />
    </Mask>
    <G mask='url(#prefix__a)'>
      <Path
        fill={color}
        d='M1.797 17.085q0-.774.399-1.38a2.7 2.7 0 0 1 1.066-.944q1.426-.697 2.866-1.075t3.169-.378 3.168.377 2.867 1.076q.666.338 1.066.944.399.606.399 1.38v.703q0 .605-.444 1.062a1.44 1.44 0 0 1-1.076.458H3.316q-.633 0-1.076-.444a1.47 1.47 0 0 1-.443-1.076zm16.613 2.223q.189-.345.288-.733t.099-.787v-.826q0-.985-.482-1.877a4.54 4.54 0 0 0-1.368-1.531q1.005.15 1.91.464.903.315 1.724.743.775.414 1.197.975t.422 1.226v.826q0 .633-.443 1.076a1.47 1.47 0 0 1-1.076.444zm-9.113-7.616q-1.444 0-2.472-1.028T5.797 8.192q0-1.443 1.028-2.471t2.472-1.029 2.472 1.029 1.028 2.471-1.028 2.472q-1.029 1.028-2.472 1.028m8.634-3.5q0 1.444-1.028 2.472t-2.472 1.028a3 3 0 0 1-.43-.038 4 4 0 0 1-.431-.085q.59-.711.91-1.578a5.2 5.2 0 0 0-.007-3.593 5.8 5.8 0 0 0-.903-1.582q.215-.078.43-.1.216-.024.431-.024 1.444 0 2.472 1.029t1.028 2.471'
      />
    </G>
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/Info.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M12.063 16.917q.33 0 .559-.232a.77.77 0 0 0 .23-.564v-4.317a.76.76 0 0 0-.234-.556.76.76 0 0 0-.557-.231.76.76 0 0 0-.564.232.76.76 0 0 0-.229.555v4.317q0 .333.232.565a.77.77 0 0 0 .563.23m-.064-7.75q.36 0 .606-.24a.8.8 0 0 0 .246-.591.85.85 0 0 0-.243-.623.82.82 0 0 0-.604-.246.83.83 0 0 0-.611.243.84.84 0 0 0-.242.616q0 .36.244.6t.604.24m.008 12.666a9.5 9.5 0 0 1-3.828-.777 10 10 0 0 1-3.124-2.113 10 10 0 0 1-2.11-3.125 9.5 9.5 0 0 1-.777-3.825q0-2.038.777-3.83A9.9 9.9 0 0 1 5.058 5.04a10 10 0 0 1 3.125-2.102 9.55 9.55 0 0 1 3.826-.772q2.037 0 3.83.775a9.9 9.9 0 0 1 3.121 2.104 9.9 9.9 0 0 1 2.102 3.122 9.6 9.6 0 0 1 .772 3.827 9.6 9.6 0 0 1-.773 3.827 9.9 9.9 0 0 1-2.104 3.122 10 10 0 0 1-3.123 2.11q-1.793.78-3.827.78m.002-1.583q3.43 0 5.836-2.414t2.406-5.844-2.402-5.836-5.847-2.406q-3.421 0-5.836 2.403T3.75 12q0 3.42 2.414 5.836Q8.58 20.25 12.01 20.25'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/InfoIcon.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M12.063 16.917q.33 0 .559-.232a.77.77 0 0 0 .23-.564v-4.317a.76.76 0 0 0-.234-.556.76.76 0 0 0-.557-.231.76.76 0 0 0-.564.232.76.76 0 0 0-.229.555v4.317q0 .333.232.565a.77.77 0 0 0 .563.23m-.064-7.75q.36 0 .606-.24a.8.8 0 0 0 .246-.591.85.85 0 0 0-.243-.623.82.82 0 0 0-.604-.246.83.83 0 0 0-.611.243.84.84 0 0 0-.242.616q0 .36.244.6t.604.24m.008 12.666a9.5 9.5 0 0 1-3.828-.777 10 10 0 0 1-3.124-2.113 10 10 0 0 1-2.11-3.125 9.5 9.5 0 0 1-.777-3.825q0-2.038.777-3.83A9.9 9.9 0 0 1 5.058 5.04a10 10 0 0 1 3.125-2.102 9.55 9.55 0 0 1 3.826-.772q2.037 0 3.83.775a9.9 9.9 0 0 1 3.121 2.104 9.9 9.9 0 0 1 2.102 3.122 9.6 9.6 0 0 1 .772 3.827 9.6 9.6 0 0 1-.773 3.827 9.9 9.9 0 0 1-2.104 3.122 10 10 0 0 1-3.123 2.11q-1.793.78-3.827.78m.002-1.583q3.43 0 5.836-2.414t2.406-5.844-2.402-5.836-5.847-2.406q-3.421 0-5.836 2.403T3.75 12q0 3.42 2.414 5.836Q8.58 20.25 12.01 20.25'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/Logout.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M5.308 20.5q-.758 0-1.283-.525a1.75 1.75 0 0 1-.525-1.283V5.308q0-.758.525-1.283T5.308 3.5h5.952q.318 0 .534.216a.73.73 0 0 1 .215.534.73.73 0 0 1-.215.535.73.73 0 0 1-.534.215H5.308a.3.3 0 0 0-.212.096.3.3 0 0 0-.096.212v13.384q0 .116.096.212a.3.3 0 0 0 .212.096h5.952q.318 0 .534.215a.73.73 0 0 1 .215.535.73.73 0 0 1-.215.535.73.73 0 0 1-.534.215zm12.31-7.75H9.845a.73.73 0 0 1-.534-.216.73.73 0 0 1-.216-.534q0-.32.216-.534a.73.73 0 0 1 .534-.216h7.771l-1.923-1.923a.7.7 0 0 1-.212-.507.74.74 0 0 1 .212-.531.72.72 0 0 1 .527-.241.72.72 0 0 1 .543.225l3.094 3.094q.27.271.27.633 0 .361-.27.633l-3.094 3.094a.71.71 0 0 1-.53.22.75.75 0 0 1-.54-.236.73.73 0 0 1-.21-.534.74.74 0 0 1 .226-.52z'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/Person.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M11.999 12q-1.63 0-2.69-1.06t-1.06-2.69 1.06-2.69 2.69-1.06q1.628 0 2.689 1.06 1.06 1.06 1.06 2.69t-1.06 2.69-2.69 1.06m-7.85 6.2v-.817q0-.9.451-1.568a2.9 2.9 0 0 1 1.185-1.018 18 18 0 0 1 3.14-1.116 12.8 12.8 0 0 1 3.073-.377q1.545 0 3.065.381a18.4 18.4 0 0 1 3.134 1.118q.75.348 1.201 1.012.45.664.45 1.568v.821q0 .648-.465 1.114-.465.465-1.118.465H5.732q-.653 0-1.119-.465a1.53 1.53 0 0 1-.465-1.118m1.583 0h12.533v-.814q0-.366-.208-.686a1.36 1.36 0 0 0-.513-.48q-1.512-.728-2.831-1.03A12 12 0 0 0 12 14.887q-1.403 0-2.732.303-1.328.302-2.825 1.03-.312.16-.512.481-.2.322-.2.686zm6.266-7.783q.925 0 1.546-.621t.621-1.546-.62-1.546-1.547-.62-1.545.62-.621 1.546.62 1.546q.622.62 1.546.62'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/PersonAdd.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M18.13 10.817h-2.345a.75.75 0 0 1-.56-.234.78.78 0 0 1-.228-.561q0-.327.227-.558a.76.76 0 0 1 .56-.23h2.347V6.887q0-.325.227-.556a.76.76 0 0 1 .563-.232q.334 0 .564.232t.229.556v2.345h2.337q.333 0 .565.233a.76.76 0 0 1 .231.558q0 .334-.231.564a.77.77 0 0 1-.565.229h-2.337v2.337q0 .333-.232.565a.77.77 0 0 1-.567.231.75.75 0 0 1-.56-.231.78.78 0 0 1-.224-.565zM9.019 12q-1.63 0-2.69-1.06t-1.06-2.69 1.06-2.69 2.69-1.06 2.69 1.06 1.06 2.69-1.06 2.69T9.018 12m-7.85 6.2v-.818q0-.85.427-1.539a2.67 2.67 0 0 1 1.21-1.04q1.746-.795 3.22-1.147a12.8 12.8 0 0 1 5.973 0q1.467.352 3.22 1.144.78.363 1.215 1.046a2.8 2.8 0 0 1 .435 1.537v.821q0 .648-.465 1.114-.465.465-1.118.465H2.75q-.653 0-1.118-.465a1.53 1.53 0 0 1-.465-1.118m1.583 0h12.534v-.813q0-.364-.196-.686a1.23 1.23 0 0 0-.525-.48q-1.63-.763-2.882-1.048a12 12 0 0 0-2.662-.286q-1.419 0-2.677.286t-2.88 1.048q-.337.158-.524.479a1.33 1.33 0 0 0-.188.683zm6.267-7.783q.925 0 1.546-.621.62-.621.62-1.546t-.62-1.546q-.622-.62-1.546-.62-.925 0-1.546.62-.62.621-.62 1.546t.62 1.546q.622.62 1.546.62'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/PersonFill.tsx
================================================
import Svg, { Mask, Path, G } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Mask
      id='prefix__a'
      width={24}
      height={24}
      x={0}
      y={0}
      maskUnits='userSpaceOnUse'
      style={{
        maskType: "alpha",
      }}
    >
      <Path fill='#D9D9D9' d='M0 0h24v24H0z' />
    </Mask>
    <G mask='url(#prefix__a)'>
      <Path
        fill={color}
        d='M12 11.692q-1.448 0-2.474-1.026A3.37 3.37 0 0 1 8.5 8.192q0-1.448 1.026-2.474A3.37 3.37 0 0 1 12 4.692q1.448 0 2.474 1.026A3.37 3.37 0 0 1 15.5 8.192q0 1.449-1.026 2.474A3.37 3.37 0 0 1 12 11.692m-7.5 6.096v-.704q0-.735.399-1.36a2.66 2.66 0 0 1 1.066-.963 14.5 14.5 0 0 1 2.992-1.09 12.95 12.95 0 0 1 6.086 0q1.509.364 2.992 1.09.667.337 1.066.963t.399 1.36v.704q0 .633-.443 1.076a1.47 1.47 0 0 1-1.076.444H6.019q-.632 0-1.076-.444a1.47 1.47 0 0 1-.443-1.076'
      />
    </G>
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/PersonOff.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg
    width={width}
    height={height}
    fill={color ?? "#none"}
    viewBox="0 0 24 24"
  >
    <Path
    fill={color ?? "#000"}
      d="m18.777 20.6-2.108-2.092H6.622q-.552 0-.937-.385a1.27 1.27 0 0 1-.385-.935v-.404q0-.529.274-.982a2.1 2.1 0 0 1 .766-.74q1.171-.68 2.449-1.07 1.275-.39 2.61-.448h.158q.081 0 .159.01L3.385 5.223a.6.6 0 0 1-.195-.45.66.66 0 0 1 .21-.47.64.64 0 0 1 .464-.207q.255 0 .455.208l15.375 15.39a.65.65 0 0 1 .205.454.6.6 0 0 1-.203.452.62.62 0 0 1-.455.208.64.64 0 0 1-.464-.208M6.6 17.208h8.77l-2.328-2.352q-.27-.02-.52-.034a9.93 9.93 0 0 0-3.109.326 9.5 9.5 0 0 0-2.384 1.002.9.9 0 0 0-.315.278.6.6 0 0 0-.114.356zm11.296-2.04q.222.14.358.34.136.202.177.46l-1.187-1.187.33.18q.165.09.322.206m-4.18-4.009-.975-.95q.481-.22.77-.662.29-.44.289-.964 0-.741-.526-1.266a1.73 1.73 0 0 0-1.264-.525q-.522 0-.963.29-.442.288-.664.77l-.95-.975a2.85 2.85 0 0 1 1.112-1.027q.69-.358 1.455-.358 1.298 0 2.199.901.9.9.901 2.2 0 .764-.358 1.454-.357.69-1.027 1.112"
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/Reset.tsx
================================================
import React from "react";
import Svg, { Path, SvgProps } from "react-native-svg";

const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg
    width={width}
    height={height}
    viewBox="0 0 90 90"
    fill="none"
  >
    <Path
      d="M75.702 53.014c-2.142 7.995-7.27 14.678-14.439 18.816-7.168 4.138-15.519 5.239-23.514 3.095-16.505-4.423-26.335-21.448-21.913-37.953C20.258 20.467 37.286 10.64 53.79 15.06c4.213 1.129 8.076 3.118 11.413 5.809l-8.349 8.35h26.654V2.565l-8.354 8.354c-5.1-4.405-11.133-7.61-17.74-9.381C33.451-4.882 8.735 9.389 2.314 33.35c-6.42 23.961 7.851 48.678 31.811 55.098C38.001 89.486 41.934 90 45.842 90c7.795 0 15.488-2.044 22.42-6.046 10.407-6.008 17.851-15.709 20.962-27.317L75.702 53.014z"
      fill={color || "#000"}
    />
  </Svg>
);

export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/UserEmptyIcon.tsx
================================================
import type { SvgProps } from "react-native-svg";
import Svg, { G, Mask, Path, Rect } from "react-native-svg";

const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 120 120'>
    <Mask
      id='mask0_5082_129886'
      style={{ maskType: "alpha" }}
      maskUnits='userSpaceOnUse'
      x='-20'
      y='-20'
      width='160'
      height='160'
    >
      <Rect x='-20' y='-20' width='160' height='160' fill='#D9D9D9' />
    </Mask>
    <G mask='url(#mask0_5082_129886)'>
      <Path
        d='M60 57.9479C53.5644 57.9479 48.0667 55.6679 43.5067 51.1079C38.9467 46.549 36.6667 41.0512 36.6667 34.6146C36.6667 28.179 38.9467 22.6825 43.5067 18.1235C48.0667 13.5644 53.5644 11.2844 60 11.2844C66.4356 11.2844 71.9333 13.5644 76.4933 18.1235C81.0533 22.6825 83.3333 28.179 83.3333 34.6146C83.3333 41.0512 81.0533 46.549 76.4933 51.1079C71.9333 55.6679 66.4356 57.9479 60 57.9479ZM19.3166 105.007C16.1811 105.007 13.4568 103.856 11.1437 101.555C8.8306 99.2539 7.67344 96.5196 7.67344 93.3513V91.0288C7.67344 86.7545 8.70044 82.9018 10.7544 79.4706C12.8084 76.0385 15.6466 73.4095 19.268 71.5826C24.3797 69.1016 29.6071 67.2153 34.95 65.9235C40.2929 64.6317 46.0113 63.9858 52.105 63.9858H67.8949C73.987 63.9858 79.7055 64.6317 85.0491 65.9235C90.3928 67.2153 95.6215 69.1016 100.735 71.5826C104.357 73.4095 107.195 76.0385 109.249 79.4706C111.303 82.9018 112.33 86.7545 112.33 91.0288V93.3513C112.33 96.5196 111.173 99.2539 108.86 101.555C106.547 103.856 103.823 105.007 100.687 105.007H19.3166Z'
        fill={color}
      />
    </G>
  </Svg>
);

export default SvgComponent;


================================================
FILE: examples/SampleApp/src/assets/icons/VideoCam.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M3.779 19.85q-.64 0-1.112-.471a1.52 1.52 0 0 1-.472-1.112V5.733q0-.64.472-1.112a1.52 1.52 0 0 1 1.112-.471h12.537q.627 0 1.104.471.475.471.475 1.112v5.1L21.13 7.6a.38.38 0 0 1 .433-.09q.25.095.25.357v8.27q0 .257-.25.352a.38.38 0 0 1-.433-.09l-3.234-3.232v5.1q0 .64-.475 1.112-.477.47-1.104.47zm0-1.583h12.533V5.733H3.78z'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/AIAgent/AIAgents.tsx
================================================
import {CometChat} from '@cometchat/chat-sdk-react-native';
import {CometChatUsers, useTheme} from '@cometchat/chat-uikit-react-native';
import React, {useCallback, useLayoutEffect} from 'react';
import {SafeAreaView} from 'react-native';
import {useFocusEffect, useNavigation} from '@react-navigation/native';
import {RootStackParamList} from '../../navigation/types';
import {StackNavigationProp} from '@react-navigation/stack';

type AIAgentNavigationProp = StackNavigationProp<RootStackParamList, 'AIAgents'>;

const AIAgents: React.FC = () => {
  const theme = useTheme();
  const navigation = useNavigation<AIAgentNavigationProp>();
  const [shouldHide, setShouldHide] = React.useState(false);

  // Focus effect to manage component visibility
  useFocusEffect(
    useCallback(() => {
      setShouldHide(false);
      return () => {
        setShouldHide(true);
      };
    }, []),
  );

  // Configure header with back button
  useLayoutEffect(() => {
    navigation.setOptions({
      headerShown: false,
      title: 'AI Assistants',
      headerStyle: {
        backgroundColor: theme.color.background1,
      },
      headerTitleStyle: {
        color: theme.color.textPrimary,
      },
    });
  }, [navigation, theme]);

  const handleUserPress = (user: CometChat.User) => {
    navigation.navigate('Messages', { user });
  };

  return shouldHide ? null : (
    <SafeAreaView style={{flex: 1, backgroundColor: theme.color.background1}}>
      <CometChatUsers
        onItemPress={handleUserPress}
        title='Assistants'
        showBackButton={true}
        onBack={() => navigation.goBack()}
        usersRequestBuilder={new CometChat.UsersRequestBuilder()
          .setLimit(30)
          .hideBlockedUsers(false)
          .setRoles(['@agentic'])
          .friendsOnly(false)
          .setStatus('')
          .setTags([])
          .sortBy('name')
          .setUIDs([])}
      />
    </SafeAreaView>
  );
};

export default AIAgents;

================================================
FILE: examples/SampleApp/src/components/calls/CallDetailHelper.tsx
================================================
import {CometChatTheme, CometChatUIKit} from '@cometchat/chat-uikit-react-native';
import {CallMade, CallMissedOutgoingFill, CallReceived} from './icons';
import {JSX} from 'react';
import { getCometChatTranslation } from '@cometchat/chat-uikit-react-native';
const t = getCometChatTranslation();

type CallDirection = 'incoming' | 'outgoing';

export type CallStatus =
  | 'incoming'
  | 'outgoing'
  | 'incomingCallEnded'
  | 'outgoingCallEnded'
  | 'cancelledByMe'
  | 'cancelledByThem'
  | 'incomingRejected'
  | 'outgoingRejected'
  | 'incomingBusy'
  | 'outgoingBusy'
  | 'unansweredByMe'
  | 'unansweredByThem';

export class CallDetailHelper {
  static getFormattedInitiatedAt = (call: any): string => {
    const date = new Date(call.getInitiatedAt() * 1000);
    const now = new Date();

    // Extracting parts
    const day = date.getDate();
    const month = new Intl.DateTimeFormat('en-US', {month: 'long'}).format(
      date,
    );
    const year = date.getFullYear();
    const time = date.toLocaleTimeString('en-US', {
      hour: 'numeric',
      minute: '2-digit',
      hour12: true,
    });

    // Determine if the year should be included
    const includeYear = now.getFullYear() !== year;

    return `${day} ${month}${includeYear ? `, ${year}` : ''}, ${time}`;
  };

  /** Returns the UI-facing callStatus plus the direction */
  static getCallType = (
    call: any,
  ): {type: CallDirection; callStatus: CallStatus} => {
    const myUid = CometChatUIKit.loggedInUser?.getUid();
    const type: CallDirection =
      call.getInitiator().getUid() === myUid ? 'outgoing' : 'incoming';

    const statusMap: Record<
      string,
      {incoming: CallStatus; outgoing: CallStatus}
    > = {
      ended: {
        incoming: 'incomingCallEnded',
        outgoing: 'outgoingCallEnded',
      },
      rejected: {
        incoming: 'incomingRejected',
        outgoing: 'outgoingRejected',
      },
      cancelled: {
        incoming: 'unansweredByMe',
        outgoing: 'cancelledByMe',
      },
      unanswered: {
        incoming: 'unansweredByMe',
        outgoing: 'unansweredByThem',
      },
      initiated: {
        incoming: 'incoming',
        outgoing: 'outgoing',
      },
      busy: {
        incoming: 'incomingBusy',
        outgoing: 'outgoingBusy',
      },
    };

    return {
      type,
      callStatus:
        statusMap[call.getStatus() as keyof typeof statusMap]?.[type] ??
        (type === 'incoming' ? 'incoming' : 'outgoing'),
    };
  };

  /** Which SVG to render for a given callStatus */
  static getCallStatusDisplayIcon = (
    callStatus: CallStatus,
    theme: CometChatTheme,
  ): JSX.Element | undefined => {
    const icons: Record<CallStatus, JSX.Element> = {
      outgoing: <CallMade height={24} width={24} color={theme.color.success} />,
      outgoingCallEnded: (
        <CallMade height={24} width={24} color={theme.color.success} />
      ),
      cancelledByMe: (
        <CallMade height={24} width={24} color={theme.color.success} />
      ),
      outgoingRejected: (
        <CallMade height={24} width={24} color={theme.color.success} />
      ),
      outgoingBusy: (
        <CallMade height={24} width={24} color={theme.color.success} />
      ),
      unansweredByThem: (
        <CallMade height={24} width={24} color={theme.color.success} />
      ),

      incoming: (
        <CallReceived height={24} width={24} color={theme.color.success} />
      ),
      incomingCallEnded: (
        <CallReceived height={24} width={24} color={theme.color.success} />
      ),
      cancelledByThem: (
        <CallMissedOutgoingFill
          height={24}
          width={24}
          color={theme.color.error}
        />
      ),
      incomingRejected: (
        <CallReceived height={24} width={24} color={theme.color.success} />
      ),
      incomingBusy: (
        <CallMissedOutgoingFill
          height={24}
          width={24}
          color={theme.color.error}
        />
      ),
      unansweredByMe: (
        <CallMissedOutgoingFill
          height={24}
          width={24}
          color={theme.color.error}
        />
      ),
    };

    return icons[callStatus];
  };

  static getCallStatusDisplayText = (callStatus: CallStatus): string => {
    const labels: Record<CallStatus, string> = {
      outgoing: t('OUTGOING_CALL'),
      outgoingCallEnded: t('OUTGOING_CALL'),
      cancelledByMe: t('OUTGOING_CALL'),
      outgoingRejected: t('OUTGOING_CALL'),
      outgoingBusy: t('OUTGOING_CALL'),
      unansweredByThem: t('OUTGOING_CALL'),

      incoming: t('INCOMING_CALL'),
      incomingCallEnded: t('INCOMING_CALL'),
      cancelledByThem: t('MISSED_CALL'),
      incomingRejected: t('INCOMING_CALL'),
      incomingBusy: t('MISSED_CALL'),
      unansweredByMe: t('MISSED_CALL'),
    };

    return labels[callStatus];
  };
}


================================================
FILE: examples/SampleApp/src/components/calls/CallDetails.tsx
================================================
import React, {
  JSX,
  useCallback,
  useEffect,
  useMemo,
  useRef,
  useState,
} from 'react';
import {View, TouchableOpacity, Text, TextStyle, ViewStyle} from 'react-native';
import {CometChat} from '@cometchat/chat-sdk-react-native';
import {
  CometChatListItem,
  useCometChatTranslation,
  useTheme,
  useLocalizedDate,
  LocalizedDateHelper
} from '@cometchat/chat-uikit-react-native';
import {CallHistory} from './CallHistory';
import {CallLogDetailHeader} from './CallLogDetailHeader';
import {Icon} from '@cometchat/chat-uikit-react-native';
import {CallParticipants} from './CallParticipants';
import {CallDetailHelper, CallStatus} from './CallDetailHelper';
import {CallRecordings} from './CallRecordings';
import {StackScreenProps} from '@react-navigation/stack';
import {ICONS} from '@cometchat/chat-uikit-react-native/src/shared/icons/icon-mapping';
import {RootStackParamList} from '../../navigation/types';


const listenerId = 'userListener_' + new Date().getTime();
const TABS = {
  DETAILS: 'Details',
  PARTICIPANTS: 'Participants',
  RECORDINGS: 'Recordings',
  HISTORY: 'History',
};

type Props = StackScreenProps<RootStackParamList, 'CallDetails'>;

export const CallDetails: React.FC<Props> = ({route, navigation}) => {
  const {call} = route.params;

  const theme = useTheme();
  const {t, language} = useCometChatTranslation()
  const {formatDate}= useLocalizedDate()
  const [group, setGroup] = useState<CometChat.Group | null>(null);
  const [user, setUser] = useState<CometChat.User | null>(null);
  const loggedInUser = useRef<CometChat.User | any>(null);
  const [selectedTab, setSelectedTab] = useState(TABS.PARTICIPANTS);
  const [tabStyle, setTableStyle] = useState<{
    containerStyle: ViewStyle;
    itemStyle: ViewStyle;
    selectedItemStyle: ViewStyle;
    itemEmojiStyle: TextStyle;
    selectedItemEmojiStyle: TextStyle;
    itemTextStyle: TextStyle;
    selectedItemTextStyle: TextStyle;
  }>();
  const BackIcon = ICONS['arrow-back'];
  const [toastMessage, setToastMessage] = useState<string | null>(null);

  useEffect(() => {
    console.log('CALL RECEIVER: ', call);
    CometChat.getLoggedinUser().then((loggedUser: CometChat.User | any) => {
      loggedInUser.current = loggedUser;
      let user =
        call?.getReceiverType() == 'user'
          ? loggedInUser.current?.getUid() === call?.getInitiator()?.getUid()
            ? call.getReceiver()
            : call?.getInitiator()
          : undefined;
      let group =
        call?.getReceiverType() == 'group'
          ? loggedInUser.current?.getUid() === call?.getInitiator()?.getUid()
            ? call.getReceiver()
            : call?.getInitiator()
          : undefined;
      if (user) {
        CometChat.getUser(user.getUid()).then((userObject: CometChat.User) => {
          setUser(userObject);
        });
        return;
      }

      CometChat.getGroup(group.getGuid()).then(
        (groupObject: CometChat.Group) => {
          setGroup(groupObject);
        },
      );
    });
  }, [call]);

  useEffect(() => {
    CometChat.addUserListener(
      listenerId,
      new CometChat.UserListener({
        onUserOnline: (userDetails: any) => {
          if (user?.getUid() === userDetails?.getUid()) {
            setUser(userDetails);
          }
        },
        onUserOffline: (userDetails: any) => {
          if (user?.getUid() === userDetails?.getUid()) {
            setUser(userDetails);
          }
        },
      }),
    );
    return () => {
      CometChat.removeUserListener(listenerId);
    };
  }, [user]);

  useEffect(() => {
    setTableStyle({
      containerStyle: {
        //flex: 1,
        backgroundColor: theme.color.background1,
        flexDirection: 'row',
        //justifyContent: 'space-evenly', // ✅ Ensures even spacing
        alignItems: 'center', // Optional, ensures vertical alignment
        width: '100%', // ✅ Ensures full width for proper spacing
        borderBottomWidth: 1,
        borderColor: theme.color.borderDefault,
        justifyContent: 'space-evenly',
      },
      itemStyle: {
        // paddingHorizontal: theme.spacing.padding.p4,
        paddingVertical: theme.spacing.padding.p2,
        flexDirection: 'row',
        borderBottomWidth: theme.spacing.spacing.s0_5,
        borderBottomColor: 'transparent',
        alignItems: 'center',
        justifyContent: 'center',
        flex: 1,
      },
      selectedItemStyle: {
        // paddingHorizontal: theme.spacing.padding.p4,
        paddingVertical: theme.spacing.padding.p2,
        flexDirection: 'row',
        borderBottomWidth: theme.spacing.spacing.s0_5,
        borderBottomColor: theme.color.primary,
        alignItems: 'center',
        justifyContent: 'center',
        flex: 1,
      },
      itemEmojiStyle: {
        color: theme.color.textSecondary,
        borderColor: 'transparent',
        ...theme.typography.body.medium,
      },
      selectedItemEmojiStyle: {
        color: theme.color.textSecondary,
        borderColor: 'transparent',
        ...theme.typography.body.medium,
      },
      itemTextStyle: {
        color: theme.color.textSecondary,
        marginLeft: theme.spacing.margin.m1,
        ...theme.typography.body.medium,
      },
      selectedItemTextStyle: {
        color: theme.color.primary,
        marginLeft: theme.spacing.margin.m1,
        ...theme.typography.body.medium,
      },
    });
  }, [theme]);

  const getUserToFetchHistory = useCallback(() => {
    if (call?.getInitiator().getUid() === loggedInUser.current.getUid()) {
      return call?.getReceiver();
    }
    call?.getInitiator();
  }, [call]);

 
  const callTypeAndStatus = useMemo(
    (): {
      type: 'incoming' | 'outgoing';
      callStatus: CallStatus;
    } => CallDetailHelper.getCallType(call),
    [call],
  );

  /** Busy call toast: only when attempting a call and target is busy */
  useEffect(() => {
    const callListener = new CometChat.CallListener({
      onOutgoingCallRejected: (rejectedCall: any) => {
        try {
          const status = rejectedCall?.getStatus?.() || rejectedCall?.status;
          if (
            status &&
            status.toLowerCase() === CometChat.CALL_STATUS.BUSY.toLowerCase()
          ) {
            setToastMessage(t('CALL_BUSY'));
            setTimeout(() => setToastMessage(null), 3000);
          }
        } catch {}
      },
    });
    CometChat.addCallListener(listenerId, callListener);
    return () => {
      CometChat.removeCallListener(listenerId);
    };
  }, [t]);

  const _style = useMemo(() => {
    return {
      headerContainerStyle: {
        alignItems: 'flex-start',
        justifyContent: 'center',
        width: '100%',
        borderRadius: 0,
        paddingHorizontal: 0,
      },
      titleSeparatorStyle: {
        borderBottomWidth: 1,
        borderBottomColor: theme.color.borderLight,
        flexDirection: 'row',
        justifyContent: 'space-between',
        alignItems: 'center',
        width: '100%',
      },
      containerStyle: {
        backgroundColor: theme.color.background2,
        flex: 1,
      },
      itemStyle: {
        containerStyle: {
          flexDirection: 'row' as const,
          paddingRight: theme.spacing.padding.p4,
          paddingLeft: theme.spacing.padding.p2,
          paddingVertical: theme.spacing.padding.p2,
          gap: theme.spacing.spacing.s3,
          flex: 1,
        },
        titleStyle: {
          color: theme.color.textPrimary,
          ...theme.typography.heading4.bold,
        },
        subtitleStyle: {
          color: theme.color.textSecondary,
          ...theme.typography.caption1.regular,
        },
        tailViewTextStyle: {
          color: theme.color.textPrimary,
          ...theme.typography.caption1.bold,
        },
        avatarStyle: {
          containerStyle: {},
          textStyle: {},
          imageStyle: {
            height: 48,
            width: 48,
          },
        },
      },
    };
  }, [theme]);

  const convertMinutesToTime = useCallback((decimalMinutes: number) => {
    const totalSeconds = Math.round(decimalMinutes * 60); // Convert to seconds
    const minutes = Math.floor(totalSeconds / 60); // Get whole minutes
    const seconds = totalSeconds % 60; // Get remaining seconds
    return `${minutes} min  ${seconds} sec`;
  }, []);

  const getFormattedInitiatedAt = useCallback(() => {
    if (!call || !call.getInitiatedAt()) return '';

    return formatDate(
      call.getInitiatedAt() * 1000,
      LocalizedDateHelper.patterns.dayDateTimeFormat
    );
  }, [call]);

  const callStatusDisplayString = useMemo(() => {
    return CallDetailHelper.getCallStatusDisplayText(
      callTypeAndStatus.callStatus,
    );
  }, [callTypeAndStatus]);

  const CallStatusIcon = useMemo<JSX.Element | undefined>(
    () =>
      CallDetailHelper.getCallStatusDisplayIcon(
        callTypeAndStatus.callStatus,
        theme,
      ),
    [callTypeAndStatus, theme],
  );

  /** Local toast view component (shows only when toastMessage set; auto hides after 3s from effect) */
  const ToastView = () => {
    if (!toastMessage) return null;
    return (
      <View
        style={{
          alignSelf: 'center',
          flexDirection: 'row',
          alignItems: 'center',
          borderRadius: 24,
          backgroundColor: 'rgba(255,59,48,0.10)',
          paddingVertical: theme.spacing.padding.p1,
          paddingHorizontal: theme.spacing.padding.p2,
          marginBottom: theme.spacing.margin.m3,
          maxWidth: '80%',
        }}>
        <Icon name="info" color={theme.color.error} size={18} />
        <Text
          style={[
            theme.typography.caption1.bold,
            {color: theme.color.error, marginLeft: theme.spacing.margin.m1},
          ]}
          accessibilityRole="alert">
          {toastMessage}
        </Text>
      </View>
    );
  }

  return (
    <View style={{flex: 1, backgroundColor: theme.color.background1}}>
      <View style={{flex: 1, paddingBottom: theme.spacing.padding.p3}}>
        <View
          style={{
            flexDirection: 'row',
            justifyContent: 'flex-start',
            alignItems: 'center',
            gap: theme.spacing.padding.p2,
            paddingVertical: theme.spacing.padding.p2,
            paddingHorizontal: theme.spacing.padding.p5,
            minHeight: 64,
          }}>
          <TouchableOpacity onPress={() => navigation.goBack()}>
            <Icon
              imageStyle={{
                height: 24,
                width: 24,
                tintColor: theme.color.iconPrimary,
              }}
              icon={
                <BackIcon
                  height={24}
                  width={24}
                  color={theme.color.iconPrimary}></BackIcon>
              }
            />
          </TouchableOpacity>
          <Text
            style={{
              color: theme.color.textPrimary,
              ...theme.typography.heading1.bold,
              paddingTop: 35 - (35 * 0.75),
            }}>
            {t('CALL_DETAILS')}
          </Text>
        </View>

        {(user || group) && (
          <View style={{flexDirection: 'column'}}>
            <CallLogDetailHeader
              {...(user && {user})}
              {...(group && {group})}></CallLogDetailHeader>
            <View
              style={{
                flexDirection: 'row',
                width: '100%',
                alignItems: 'center',
                backgroundColor: theme.color.background2,
              }}>
              <Icon
                icon={CallStatusIcon}
                containerStyle={{marginLeft: theme.spacing.margin.m4}}></Icon>
              <CometChatListItem
                id={call.sessionId}
                avatarStyle={_style.itemStyle.avatarStyle}
                containerStyle={_style.itemStyle.containerStyle}
                headViewContainerStyle={{flexDirection: 'row'}}
                titleStyle={_style.itemStyle.titleStyle}
                title={callStatusDisplayString}
                trailingViewContainerStyle={{
                  alignSelf: 'center',
                }}
                SubtitleView={
                  <Text style={_style.itemStyle.subtitleStyle}>
                    {getFormattedInitiatedAt()}
                  </Text>
                }
                TrailingView={
                  <Text style={_style.itemStyle.tailViewTextStyle}>
                    {convertMinutesToTime(call.getTotalDurationInMinutes())}
                  </Text>
                }
              />
            </View>

            <View
              style={{
                flexDirection: 'row',
                alignItems: 'center',
                width: '100%',
                borderBottomWidth: 1,
                borderColor: theme.color.borderDefault,
                justifyContent: 'space-evenly',
                paddingHorizontal: 0,
              }}>
              {[
                { key: TABS.PARTICIPANTS, title: t('PARTICIPANT') },
                { key: TABS.RECORDINGS, title: t('RECORDING') },
                { key: TABS.HISTORY, title: t('HISTORY') }
              ].map((tab) => (
                <TouchableOpacity
                  key={tab.key}
                  style={
                    selectedTab === tab.key
                      ? tabStyle!.selectedItemStyle
                      : tabStyle!.itemStyle
                  }
                  onPress={() => setSelectedTab(tab.key)}>
                  <Text
                    style={
                      selectedTab === tab.key
                        ? tabStyle!.selectedItemTextStyle
                        : tabStyle!.itemTextStyle
                    }>
                    {tab.title}
                  </Text>
                </TouchableOpacity>
              ))}
            </View>
            {selectedTab === TABS.PARTICIPANTS && (
              <CallParticipants
                call={call}
                data={call?.getParticipants()}></CallParticipants>
            )}
            {selectedTab === TABS.HISTORY && (
              <CallHistory user={getUserToFetchHistory()}></CallHistory>
            )}
            {selectedTab === TABS.RECORDINGS &&
              call.getRecordings()?.length && (
                <CallRecordings call={call}></CallRecordings>
              )}
          </View>
        )}
      </View>
      <View style={{width: '100%', paddingBottom: theme.spacing.padding.p3}}>
        <ToastView />
      </View>
    </View>
  );
};



================================================
FILE: examples/SampleApp/src/components/calls/CallHistory.tsx
================================================
import { CometChat } from '@cometchat/chat-sdk-react-native';
import {
  CallingPackage,
  CometChatListItem,
  useTheme,
  useCometChatTranslation,
  useLocalizedDate,
  LocalizedDateHelper
} from '@cometchat/chat-uikit-react-native';
import React, { JSX, useCallback, useEffect, useMemo, useRef, useState } from 'react';
import { ActivityIndicator, FlatList, Text, View } from 'react-native';
import { CallDetailHelper } from './CallDetailHelper';
import { Icon } from '@cometchat/chat-uikit-react-native';

const CometChatCalls = CallingPackage.CometChatCalls;

export const CallHistory = (props: { user?: any; group?: any }) => {
  const { user, group } = props;

  const theme = useTheme();
  const { language, t } = useCometChatTranslation();
  const { formatDate } = useLocalizedDate();

  const [list, setList] = useState<any[]>([]);
  const [loading, setLoading] = useState<boolean>(true);
  const [isFetchingMore, setIsFetchingMore] = useState<boolean>(false);

  const loggedInUser = useRef<CometChat.User | any>(null);
  const callRequestBuilderRef = useRef<any>(null);

  function setRequestBuilder() {
    callRequestBuilderRef.current;
    let builder = new CometChatCalls.CallLogRequestBuilder()
      .setLimit(30)
      .setAuthToken(loggedInUser.current?.getAuthToken() || '')
      .setCallCategory('call');
    if (user) {
      builder = builder.setUid(user?.getUid());
    } else if (group) {
      builder = builder.setGuid(group?.getGuid());
    }
    callRequestBuilderRef.current = builder.build();
  }

  const fetchCallLogHistory = () => {
    if (!callRequestBuilderRef.current || isFetchingMore) {
      return;
    }
    setIsFetchingMore(true);
    callRequestBuilderRef.current
      .fetchNext()
      .then((CallLogHistory: any) => {
        if (CallLogHistory.length > 0) {
          setList(prev => [...prev, ...CallLogHistory]);
        }
      })
      .catch((err: any) => {
        // onError && onError(err);
      })
      .finally(() => {
        setLoading(false);
        setIsFetchingMore(false);
      });
  };

  useEffect(() => {
    CometChat.getLoggedinUser()
      .then((u: any) => {
        loggedInUser.current = u;
        setRequestBuilder();
        fetchCallLogHistory();
      })
      .catch((e: any) => {
        // onError && onError(e);
        setLoading(false);
      });
  }, []);

  const _style = useMemo(() => {
    return {
      headerContainerStyle: {
        alignItems: 'flex-start',
        justifyContent: 'center',
        width: '100%',
        borderRadius: 0,
        paddingHorizontal: 0,
      },
      titleSeparatorStyle: {
        borderBottomWidth: 1,
        borderBottomColor: theme.color.borderLight,
        flexDirection: 'row',
        justifyContent: 'space-between',
        alignItems: 'center',
        width: '100%',
      },
      containerStyle: {
        backgroundColor: theme.color.background1,
        flex: 1,
      },
      itemStyle: {
        containerStyle: {
          flexDirection: 'row' as const,
          marginHorizontal: theme.spacing.margin.m4,
          paddingVertical: theme.spacing.padding.p2,
          gap: theme.spacing.spacing.s3,
          flex: 1,
        },
        titleStyle: {
          color: theme.color.textPrimary,
          flex: 1,
          ...theme.typography.heading4.bold,
        },
        subtitleStyle: {
          color: theme.color.textSecondary,
          ...theme.typography.caption1.regular,
        },
        tailViewTextStyle: {
          color: theme.color.textPrimary,
          ...theme.typography.caption1.bold,
        },
        avatarStyle: {
          containerStyle: {},
          textStyle: {},
          imageStyle: {
            height: 48,
            width: 48,
          },
        },
      },
    };
  }, [theme]);

  // Updated to use proper localization
  const getFormattedInitiatedAt = useCallback((call: any) => {
    if (!call || !call.getInitiatedAt()) return '';

    // Use localizedDateHelper to format the date with proper localization
    return formatDate(
      call.getInitiatedAt() * 1000,
      LocalizedDateHelper.patterns.dayDateTimeFormat
    );
  }, [formatDate]);

  const getCallType = useCallback((call: any) => {
    return CallDetailHelper.getCallType(call);
  }, []);

  const getCallStatusIcon = useCallback((item: any): JSX.Element => {
    const CallStatusIcon = CallDetailHelper.getCallStatusDisplayIcon(
      getCallType(item).callStatus,
      theme,
    );
    return CallStatusIcon || <View />;
  }, []);

  const convertMinutesToTime = useCallback((decimalMinutes: number) => {
    const totalSeconds = Math.round(decimalMinutes * 60); // Convert to seconds
    const minutes = Math.floor(totalSeconds / 60); // Get whole minutes
    const seconds = totalSeconds % 60; // Get remaining seconds
    return `${minutes} min  ${seconds} sec`;
  }, []);

  

  // Added to get localized call status text
  const getCallStatusText = useCallback((callStatus: any) => {
    // Get translation key for this status
    const translationKeys: Record<string, string> = {
      outgoing: 'OUTGOING_CALL',
      outgoingCallEnded: 'OUTGOING_CALL',
      cancelledByMe: 'OUTGOING_CALL',
      outgoingRejected: 'OUTGOING_CALL',
      outgoingBusy: 'OUTGOING_CALL',
      unansweredByThem: 'OUTGOING_CALL',
      incoming: 'INCOMING_CALL',
      incomingCallEnded: 'INCOMING_CALL',
      cancelledByThem: 'MISSED_CALL',
      incomingRejected: 'INCOMING_CALL',
      incomingBusy: 'MISSED_CALL',
      unansweredByMe: 'MISSED_CALL',
    };

    const key = translationKeys[callStatus] || 'UNKNOWN_CALL';
    return t(key);
  }, [t]);

  const _render = ({ item, index }: any) => {
    return (
      <React.Fragment key={index}>
        <View
          style={{
            flexDirection: 'row',
            width: '100%',
            alignItems: 'center',
          }}>
          <Icon
            icon={getCallStatusIcon(item)}
            containerStyle={{ marginLeft: theme.spacing.margin.m4 }}></Icon>
          <CometChatListItem
            id={item.sessionId}
            containerStyle={_style.itemStyle.containerStyle}
            headViewContainerStyle={{ flexDirection: 'row' }}
            trailingViewContainerStyle={{
              alignSelf: 'center',
            }}
            titleStyle={_style.itemStyle.titleStyle}
           title={CallDetailHelper.getCallStatusDisplayText(
              getCallType(item).callStatus,
            )}
            SubtitleView={
              <Text
                style={{
                  ...theme.typography.body.regular,
                  color: theme.color.textSecondary,
                }}>
                {getFormattedInitiatedAt(item)}
              </Text>
            }
            TrailingView={
              <Text style={_style.itemStyle.tailViewTextStyle}>
              {convertMinutesToTime(item.getTotalDurationInMinutes())}
              </Text>
            }
          />
        </View>
      </React.Fragment>
    );
  };

  return (
    <FlatList
      data={list}
      keyExtractor={(item, index) => item.sessionId + '_' + index}
      renderItem={_render}
      onEndReached={fetchCallLogHistory}
      onEndReachedThreshold={0.5}
      ListEmptyComponent={
        loading ? (
          <View
            style={{
              flex: 1,
              height: 300,
              justifyContent: 'center',
              alignItems: 'center',
            }}
          >
            <ActivityIndicator size="large" color={theme.color.primary} />
          </View>
        ) : null
      }
    />
  );
};


================================================
FILE: examples/SampleApp/src/components/calls/CallLogDetailHeader.tsx
================================================
import {CometChat} from '@cometchat/chat-sdk-react-native';
import {
  useTheme,
  CometChatAvatar,
  CometChatCallButtons,
  useCometChatTranslation,
} from '@cometchat/chat-uikit-react-native';
import {
  GroupTypeConstants,
  UserStatusConstants,
} from '@cometchat/chat-uikit-react-native/src/shared/constants/UIKitConstants';
import {CometChatCompThemeProvider} from '@cometchat/chat-uikit-react-native/src/theme/provider';
import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';
import {Text, View} from 'react-native';
import { useConfig } from '../../config/store';
export type CallLogDetailHeaderInterface = {
  user?: CometChat.User;
  /**
   *
   * @type {CometChat.Group}
   *   To pass group object
   */
  group?: CometChat.Group;
};

export const CallLogDetailHeader = (props: CallLogDetailHeaderInterface) => {
  const theme = useTheme();
  const {t}= useCometChatTranslation()
  const {user, group} = props;

  const [groupObj, setGroupObj] = useState(group);
  const [userStatus, setUserStatus] = useState(
    user &&
      !(user.getBlockedByMe() || user.getHasBlockedMe()) &&
      user?.getStatus
      ? user?.getStatus()
      : '',
  );
  const oneOnOneVoiceCalling = useConfig(
    (state) => state.settings.callFeatures.voiceAndVideoCalling.oneOnOneVoiceCalling
  );
  const oneOnOneVideoCalling = useConfig(
    (state) => state.settings.callFeatures.voiceAndVideoCalling.oneOnOneVideoCalling
  );
  const groupVideoConference = useConfig(
    (state) => state.settings.callFeatures.voiceAndVideoCalling.groupVideoConference
  );
  const groupVoiceConference = useConfig(
    (state) => state.settings.callFeatures.voiceAndVideoCalling.groupVoiceConference
  );
  const receiverTypeRef = useRef(
    user
      ? CometChat.RECEIVER_TYPE.USER
      : group
        ? CometChat.RECEIVER_TYPE.GROUP
        : null,
  );

  useEffect(() => {
    setGroupObj(group);
  }, [group]);

  useEffect(() => {
    setUserStatus(
      user && !(user.getBlockedByMe() || user.getHasBlockedMe())
        ? user?.getStatus()
        : '',
    );
  }, [user]);

  const messageHeaderStyles = useMemo(() => {
    return theme.messageHeaderStyles;
  }, [theme.messageHeaderStyles]);

  const statusIndicatorType = useMemo(() => {
    if (groupObj?.getType() === GroupTypeConstants.password) {
      return 'protected';
    } else if (groupObj?.getType() === GroupTypeConstants.private) {
      return 'private';
    } else if (userStatus === 'online') {
      return 'online';
    }
    return '';
  }, [userStatus, groupObj]);

  const AvatarWithStatusView = useCallback(() => {
    return (
      <View>
        <CometChatAvatar
          image={
            user
              ? user.getAvatar()
                ? {uri: user.getAvatar()}
                : undefined
              : groupObj
                ? groupObj.getIcon()
                  ? {uri: groupObj.getIcon()}
                  : undefined
                : undefined
          }
          name={user?.getName() || groupObj?.getName() || ''}
        />
      </View>
    );
  }, [user, groupObj, statusIndicatorType]);

  const SubtitleViewFnc = () => {
    const statusTytle =
      receiverTypeRef.current === CometChat.RECEIVER_TYPE.GROUP &&
      (groupObj?.['membersCount'] || groupObj?.['membersCount'] === 0)
        ? `${groupObj['membersCount']} ${t('MEMBERS')}`
        : receiverTypeRef.current === CometChat.RECEIVER_TYPE.USER
          ? userStatus === UserStatusConstants.online
            ? t('ONLINE')
            : userStatus === UserStatusConstants.offline
              ? t('OFFLINE')
              : ''
          : '';

    if(!statusTytle) return <></>;
    return (
      <Text
        style={{
          ...theme.typography.caption1.regular,
          color: theme.color.textSecondary,
        }}>
        {statusTytle}
      </Text>
    );
  };

  return (
    <CometChatCompThemeProvider
      theme={{
        callButtonStyles: messageHeaderStyles.callButtonStyle,
        avatarStyle: messageHeaderStyles.avatarStyle,
        statusIndicatorStyle: messageHeaderStyles.statusIndicatorStyle,
      }}>
      <View
        style={{
          paddingVertical: theme.spacing.padding.p5,
          paddingHorizontal: theme.spacing.padding.p4,
          backgroundColor: theme.color.background1,
          flexDirection: 'row',
          gap: theme.spacing.padding.p3,
          alignItems: 'center',
          borderTopWidth: 1,
          borderBottomWidth: 1,
          borderColor: theme.color.borderLight,
        }}>
        <AvatarWithStatusView />
        <View style={{flex: 1}}>
          <Text
            numberOfLines={1}
            ellipsizeMode="tail"
            style={{
              ...theme.typography.heading4.medium,
              color: theme.color.textPrimary,
            }}>
            {user ? user.getName() : groupObj ? groupObj.getName() : ''}
          </Text>
          {<SubtitleViewFnc />}
        </View>
        <View style={{marginLeft: 'auto'}}>
          <CometChatCallButtons
            user={user}
            group={group}
            hideVoiceCallButton={
              (user && !oneOnOneVoiceCalling) || (group && !groupVoiceConference)
            }
            hideVideoCallButton={
              (user && !oneOnOneVideoCalling) || (group && !groupVideoConference)
            }
            style={{
              containerStyle: {
                gap: 10,
              },
              audioCallButtonIconStyle: {
                height: 24,
                width: 24,
                tintColor: theme.color.iconHighlight,
              },
              videoCallButtonIconStyle: {
                height: 24,
                width: 24,
                tintColor: theme.color.iconHighlight,
              },
              audioCallButtonIconContainerStyle: {
                height: 40,
                width: 64,
                paddingVertical: theme.spacing.padding.p2,
                paddingHorizontal: theme.spacing.padding.p5,
                borderWidth: 1,
                borderRadius: theme.spacing.radius.r2,
                borderColor: theme.color.borderDefault,
              },
              videoCallButtonIconContainerStyle: {
                height: 40,
                width: 64,
                paddingVertical: theme.spacing.padding.p2,
                paddingHorizontal: theme.spacing.padding.p5,
                borderWidth: 1,
                borderRadius: theme.spacing.radius.r2,
                borderColor: theme.color.borderDefault,
              },
            }}
          />
        </View>
      </View>
    </CometChatCompThemeProvider>
  );
};


================================================
FILE: examples/SampleApp/src/components/calls/CallParticipants.tsx
================================================
import { CometChatListItem, useTheme, useCometChatTranslation, localizedDateHelperInstance, useLocalizedDate, LocalizedDateHelper } from '@cometchat/chat-uikit-react-native';
import React, { useCallback, useMemo } from 'react';
import { View, FlatList, Text } from 'react-native';
import { CallDetailHelper } from './CallDetailHelper';

export const CallParticipants = (props: {
  /**
   * Participant list
   */
  data: any[];
  call: any;
}) => {
  const { call, data } = props;

  const theme = useTheme();
  const { language, t } = useCometChatTranslation();
  const { formatDate } = useLocalizedDate();

  const getCallDetails = (item: any) => {
    return {
      title: item['name'],
      avatarUrl: item['avatar'],
    };
  };

  // Updated to use proper localization
  const formattedInitiatedAt = useMemo(() => {
    if (!call || !call.getInitiatedAt()) return '';

    // Use formatDate for proper localization of date/time
    return formatDate(
      call.getInitiatedAt() * 1000,
      LocalizedDateHelper.patterns.dayDateTimeFormat
    );
  }, [call, formatDate]);

  const _style = useMemo(() => {
    return {
      headerContainerStyle: {
        alignItems: 'flex-start',
        justifyContent: 'center',
        width: '100%',
        borderRadius: 0,
        paddingHorizontal: 0,
      },
      titleSeparatorStyle: {
        borderBottomWidth: 1,
        borderBottomColor: theme.color.borderLight,
        flexDirection: 'row',
        justifyContent: 'space-between',
        alignItems: 'center',
        width: '100%',
      },
      containerStyle: {
        backgroundColor: theme.color.background1,
        flex: 1,
      },
      itemStyle: {
        containerStyle: {
          flexDirection: 'row' as const,
          paddingHorizontal: theme.spacing.padding.p4,
          paddingVertical: theme.spacing.padding.p2,
          gap: theme.spacing.spacing.s3,
        },
        titleStyle: {
          color: theme.color.textPrimary,
          flex: 1,
          ...theme.typography.heading4.medium,
        },
        subtitleStyle: {
          color: theme.color.textSecondary,
          ...theme.typography.body.regular,
        },
        tailViewTextStyle: {
          color: theme.color.textPrimary,
          ...theme.typography.caption1.medium,
        },
        avatarStyle: {
          containerStyle: {},
          textStyle: {},
          imageStyle: {
            height: 48,
            width: 48,
          },
        },
      },
    };
  }, [theme]);
  
  const convertMinutesToTime = useCallback((decimalMinutes: number) => {
    const totalSeconds = Math.round(decimalMinutes * 60); // Convert to seconds
    const minutes = Math.floor(totalSeconds / 60); // Get whole minutes
    const seconds = totalSeconds % 60; // Get remaining seconds

    return `${minutes} min  ${seconds} sec`;
  }, []);

 

  const _render = ({ item, index }: any) => {
    const { title, avatarUrl } = getCallDetails(item);

    return (
      <React.Fragment key={index}>
        <CometChatListItem
          id={item.sessionId}
          avatarStyle={_style.itemStyle.avatarStyle}
          containerStyle={_style.itemStyle.containerStyle}
          headViewContainerStyle={{ flexDirection: 'row' }}
          titleStyle={_style.itemStyle.titleStyle}
          trailingViewContainerStyle={{
            alignSelf: 'center',
          }}
          SubtitleView={
            <Text
              style={{
                ...theme.typography.body.regular,
                color: theme.color.textSecondary,
              }}>
              {formattedInitiatedAt}
            </Text>
          }
          // avatarName={title}
          title={title}
          // subtitle={'8 August, 8:14 pm'}
          avatarURL={avatarUrl}
          TrailingView={
            <Text style={_style.itemStyle.tailViewTextStyle}>
              {convertMinutesToTime(item.getTotalDurationInMinutes())}
            </Text>
          }
        />
      </React.Fragment>
    );
  };

  return (
    <View style={{ backgroundColor: theme.color.background1 }}>
      {data.length && (
        <FlatList
          data={data}
          keyExtractor={(item, index) => item.sessionId + '_' + index}
          renderItem={_render}
        />
      )}
    </View>
  );
};

================================================
FILE: examples/SampleApp/src/components/calls/CallRecordings.tsx
================================================
import {CometChat} from '@cometchat/chat-sdk-react-native';
import {useTheme, CometChatListItem} from '@cometchat/chat-uikit-react-native';
import React, {useRef, useEffect, useMemo, useState} from 'react';
import {
  View,
  FlatList,
  Text,
  Pressable,
  NativeEventEmitter,
  NativeModules,
  Platform,
} from 'react-native';
import {PlayArrow} from './icons';
import {Icon} from '@cometchat/chat-uikit-react-native';
import {CallDetailHelper} from './CallDetailHelper';

const {FileManager} = NativeModules;
const eventEmitter = new NativeEventEmitter(FileManager);

export const CallRecordings = (props: {call: any}) => {
  const {call} = props;
  const [data, setData] = useState(call.getRecordings());

  const theme = useTheme();

  const loggedInUser = useRef(null);
  const downloadIdRef = useRef(0);
  const [processing, setProcessing] = React.useState(false);
  const [fileExists, setFileExists] = React.useState(false); // State to track if the file exists
  let listener: any = useRef(undefined);
  const [fileUrl, setFileUrl] = useState();
  const [reOpenCount, setReopenCount] = useState(0);

  useEffect(() => {
    CometChat.getLoggedinUser()
      .then((u: any) => {
        loggedInUser.current = u;
      })
      .catch((e: any) => {
        // onError && onError(e);
      });
  }, []);

  useEffect(() => {
    if (Platform.OS == 'android') {
      listener.current = eventEmitter.addListener(
        'downloadComplete',
        (data: {downloadId: number}) => {
          if (
            data.downloadId &&
            downloadIdRef.current &&
            data.downloadId == downloadIdRef.current
          ) {
            setProcessing(false);
            setFileExists(true);
            openFile(fileUrl);
          }
        },
      );
    }
    return () => {
      if (Platform.OS == 'android') {
        listener.current.remove();
      }
    };
  }, []);

  useEffect(() => {
    if (!fileUrl) return;

    const fileName = getFileName(fileUrl);
    setProcessing(true);
    FileManager.doesFileExist(fileName, (result: string) => {
      setProcessing(false);
      if (JSON.parse(result).exists) {
        setFileExists(true);
        openFile(fileUrl);
      } else {
        downloadFile(fileUrl);
      }
    });
  }, [fileUrl, reOpenCount]);

  const downloadFile = (fileUrl: any) => {
    if (processing || fileExists) return; // Do not process if file already exists

    if (!fileUrl) return;

    setProcessing(true);
    FileManager.checkAndDownload(
      fileUrl,
      getFileName(fileUrl),
      (result: string) => {
        if (Platform.OS == 'ios') {
          let parsedResult = JSON.parse(result);
          if (parsedResult.success == true) {
            setProcessing(false);
            setFileExists(true);
          }
          openFile(fileUrl);
        } else if (Platform.OS == 'android') {
          downloadIdRef.current = JSON.parse(result).downloadId;
        }
      },
    );
  };

  const openFile = (fileUrl: any) => {
    if (processing) return;

    if (!fileUrl) return;

    setProcessing(true);
    FileManager.openFileWithOption(getFileName(fileUrl), (isOpened: string) => {
      setProcessing(false);
    });
  };

  const getFileName = (fileUrl: any) => {
    return fileUrl.substring(fileUrl.lastIndexOf('/') + 1).replace(' ', '_');
  };

  const _style = useMemo(() => {
    return {
      headerContainerStyle: {
        alignItems: 'flex-start',
        justifyContent: 'center',
        width: '100%',
        borderRadius: 0,
        paddingHorizontal: 0,
      },
      titleSeparatorStyle: {
        borderBottomWidth: 1,
        borderBottomColor: theme.color.borderLight,
        flexDirection: 'row',
        justifyContent: 'space-between',
        alignItems: 'center',
        width: '100%',
      },
      containerStyle: {
        backgroundColor: theme.color.background1,
        flex: 1,
      },
      itemStyle: {
        containerStyle: {
          flexDirection: 'row' as const,
          paddingHorizontal: theme.spacing.padding.p4,
          paddingVertical: theme.spacing.padding.p2,
          gap: theme.spacing.spacing.s3,
          minHeight: 72,
        },
        titleStyle: {
          color: theme.color.textPrimary,
          flex: 1,
          ...theme.typography.heading4.medium,
        },
        subtitleStyle: {
          color: theme.color.textSecondary,
          ...theme.typography.body.regular,
        },
        tailViewTextStyle: {
          color: theme.color.textPrimary,
          ...theme.typography.caption1.medium,
        },
        avatarStyle: {
          containerStyle: {},
          textStyle: {},
          imageStyle: {
            height: 48,
            width: 48,
          },
        },
      },
    };
  }, [theme]);

  const formattedInitiatedAt = useMemo(() => {
    return CallDetailHelper.getFormattedInitiatedAt(call);
  }, [call]);

  const _render = ({item, index}: any) => {
    const title = item['rid'];

    return (
      <React.Fragment key={index}>
        <CometChatListItem
          id={item.sessionId}
          title={title}
          SubtitleView={
            <Text
              style={{
                ...theme.typography.body.regular,
                color: theme.color.textSecondary,
              }}>
              {formattedInitiatedAt}
            </Text>
          }
          titleStyle={_style.itemStyle.titleStyle}
          containerStyle={_style.itemStyle.containerStyle}
          trailingViewContainerStyle={{
            alignSelf: 'center',
          }}
          TrailingView={
            <Pressable
              onPress={() => {
                setFileUrl(item.getRecordingURL());
                setReopenCount(reOpenCount + 1);
              }}>
              <Icon
                icon={
                  <PlayArrow
                    height={24}
                    width={24}
                    color={theme.color.iconHighlight}></PlayArrow>
                }
                containerStyle={{marginLeft: theme.spacing.margin.m4}}></Icon>
            </Pressable>
          }
        />
      </React.Fragment>
    );
  };

  return (
    <View style={{backgroundColor: theme.color.background1}}>
      {data.length && (
        <FlatList
          data={data}
          keyExtractor={(item, index) => item.sessionId + '_' + index}
          renderItem={_render}
        />
      )}
    </View>
  );
};


================================================
FILE: examples/SampleApp/src/components/calls/Calls.tsx
================================================
import {CometChatCallLogs, useTheme, Icon} from '@cometchat/chat-uikit-react-native';
import {useFocusEffect, useNavigation} from '@react-navigation/native';
import React, {useCallback} from 'react';
import {View, TouchableOpacity} from 'react-native';
import {StackNavigationProp} from '@react-navigation/stack';
import {RootStackParamList} from '../../navigation/types';
import { useConfig } from '../../config/store';

type CallNavigationProp = StackNavigationProp<RootStackParamList, 'CallLogs'>;

const Calls: React.FC = () => {
  const [shouldHide, setShouldHide] = React.useState(false);
  const navigation = useNavigation<CallNavigationProp>();

  const oneOnOneVoiceCalling = useConfig(
    (state) => state.settings.callFeatures.voiceAndVideoCalling.oneOnOneVoiceCalling
  );
  const oneOnOneVideoCalling = useConfig(
    (state) => state.settings.callFeatures.voiceAndVideoCalling.oneOnOneVideoCalling
  );
  const groupVideoConference = useConfig(
    (state) => state.settings.callFeatures.voiceAndVideoCalling.groupVideoConference
  );
  const groupVoiceConference = useConfig(
    (state) => state.settings.callFeatures.voiceAndVideoCalling.groupVoiceConference
  );

  useFocusEffect(
    useCallback(() => {
      setShouldHide(false);
      return () => {
        setShouldHide(true);
      };
    }, []),
  );

  const theme = useTheme();
  const onItemPress = (item: any) => {
    navigation.navigate('CallDetails', {
      call: item,
    });
  };
  // Create TrailingView that respects visibility configuration
  const TrailingView = useCallback((call?: any, onPress?: (call: any) => void) => {
    if (!call || !onPress) return (<></>);
    const receiverType = call?.getReceiverType?.();
    const callType = call?.getType?.();
    const isUser = receiverType === 'user';
    const isAudio = callType === 'audio';

    // Check if button should be hidden based on configuration
    const shouldHide =
      (isUser && isAudio && !oneOnOneVoiceCalling) ||
      (isUser && !isAudio && !oneOnOneVideoCalling) ||
      (!isUser && isAudio && !groupVoiceConference) ||
      (!isUser && !isAudio && !groupVideoConference);

    if (shouldHide) {
      return <View />;
    }

    // Return call button - styling matches CometChatCallLogs default button
    return (
      <TouchableOpacity
        onPress={() => onPress(call)}
        style={{
          marginLeft: "auto",
        }}
      >
        <Icon
          name={call.type === "audio" ? "call" : "videocam"}
          size={24}
          color={theme.callLogsStyles.itemStyle.callIconStyle.tintColor}
          imageStyle={theme.callLogsStyles.itemStyle.callIconStyle}
        />
      </TouchableOpacity>
    );
  }, [oneOnOneVoiceCalling, oneOnOneVideoCalling, groupVoiceConference, groupVideoConference, theme]);

  return (
    <View style={{flex: 1, backgroundColor: theme.color.background1}}>
      {!shouldHide && (
        <CometChatCallLogs 
          onItemPress={onItemPress}
          TrailingView={TrailingView}
        />
      )}
    </View>
  );
};

export default Calls;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call-end-fill.tsx
================================================
import Svg, { Mask, Path, G } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Mask
      id='prefix__a'
      width={24}
      height={24}
      x={0}
      y={0}
      maskUnits='userSpaceOnUse'
      style={{
        maskType: "alpha",
      }}
    >
      <Path fill='#D9D9D9' d='M0 0h24v24H0z' />
    </Mask>
    <G mask='url(#prefix__a)'>
      <Path
        fill={color}
        d='M12 8.25q2.864 0 5.649 1.149a14.15 14.15 0 0 1 4.876 3.332q.308.31.314.724a.95.95 0 0 1-.305.714l-1.905 1.856q-.305.294-.681.329a1 1 0 0 1-.696-.2l-2.516-1.912a1.3 1.3 0 0 1-.367-.417 1.1 1.1 0 0 1-.12-.517v-2.822a15 15 0 0 0-2.113-.552A12 12 0 0 0 12 9.75q-1.107 0-2.137.184-1.029.186-2.113.553v2.82q0 .289-.12.518-.118.229-.367.417l-2.515 1.912a1 1 0 0 1-.696.2 1.1 1.1 0 0 1-.681-.329l-1.906-1.856a.95.95 0 0 1-.305-.714 1 1 0 0 1 .315-.724 14 14 0 0 1 4.868-3.332Q9.136 8.25 12 8.25'
      />
    </G>
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call-end.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M3.517 16.3 1.2 14.001a.74.74 0 0 1-.234-.551.84.84 0 0 1 .233-.567 13.8 13.8 0 0 1 4.917-3.587A14.7 14.7 0 0 1 12 8.066q3.045 0 5.88 1.23 2.833 1.23 4.92 3.587.229.255.233.567a.74.74 0 0 1-.235.551L20.5 16.3a.86.86 0 0 1-.573.24.86.86 0 0 1-.595-.158L16.5 14.254a.8.8 0 0 1-.237-.275.8.8 0 0 1-.08-.358v-3.27a11.3 11.3 0 0 0-2.077-.534 13.4 13.4 0 0 0-2.09-.167q-1.05 0-2.11.167-1.059.165-2.073.533v3.267a.8.8 0 0 1-.077.352.74.74 0 0 1-.24.281l-2.852 2.137q-.286.21-.598.183a.84.84 0 0 1-.55-.27m2.65-5.3q-.887.442-1.715 1.063-.826.62-1.602 1.32l1.317 1.35 2-1.5zm11.6-.05v2.183l2.066 1.584 1.334-1.317a12 12 0 0 0-1.619-1.367 17 17 0 0 0-1.781-1.083'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call-fill.tsx
================================================
import Svg, { Mask, Path, G } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Mask
      id='prefix__a'
      width={24}
      height={24}
      x={0}
      y={0}
      maskUnits='userSpaceOnUse'
      style={{
        maskType: "alpha",
      }}
    >
      <Path fill='#D9D9D9' d='M0 0h24v24H0z' />
    </Mask>
    <G mask='url(#prefix__a)'>
      <Path
        fill={color}
        d='M19.44 20.5q-2.827 0-5.68-1.314t-5.246-3.709q-2.385-2.395-3.7-5.242Q3.5 7.386 3.5 4.56A1.034 1.034 0 0 1 4.55 3.5h3.262q.378 0 .668.247t.368.61L9.421 7.3q.06.41-.025.704-.084.293-.304.494l-2.31 2.248q.558 1.02 1.275 1.932.716.91 1.55 1.74a17.2 17.2 0 0 0 3.753 2.842l2.244-2.264q.235-.245.568-.342.334-.099.694-.048l2.776.565q.38.1.619.387.24.285.239.65v3.242q0 .45-.305.75t-.755.3'
      />
    </G>
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call-log-fill.tsx
================================================
import Svg, { Mask, Path, G } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Mask
      id='prefix__a'
      width={24}
      height={24}
      x={0}
      y={0}
      maskUnits='userSpaceOnUse'
      style={{
        maskType: "alpha",
      }}
    >
      <Path fill='#D9D9D9' d='M0 0h24v24H0z' />
    </Mask>
    <G mask='url(#prefix__a)'>
      <Path
        fill={color}
        d='M18.44 21.5q-2.827 0-5.68-1.314t-5.242-3.709-3.703-5.242T2.5 5.56A1.03 1.03 0 0 1 3.55 4.5h3.262q.378 0 .668.247.289.247.368.61L8.421 8.3q.06.41-.025.704-.084.293-.304.494l-2.31 2.248q.558 1.02 1.275 1.932.716.91 1.55 1.74a17.2 17.2 0 0 0 3.753 2.842l2.244-2.264q.235-.245.568-.342.334-.099.694-.048l2.776.565q.38.1.619.387.24.285.239.65v3.242q0 .45-.303.75t-.757.3M12.75 4a.73.73 0 0 1-.534-.216A.73.73 0 0 1 12 3.25q0-.32.216-.534a.73.73 0 0 1 .534-.216h8q.318 0 .534.216a.73.73 0 0 1 .216.534q0 .32-.216.535A.73.73 0 0 1 20.75 4zm0 3.692a.73.73 0 0 1-.534-.216.73.73 0 0 1-.216-.534q0-.319.216-.534a.73.73 0 0 1 .534-.216h8q.318 0 .534.216a.73.73 0 0 1 .216.535q0 .318-.216.534a.73.73 0 0 1-.534.215zm0 3.692a.73.73 0 0 1-.534-.215.73.73 0 0 1-.216-.535q0-.318.216-.534a.73.73 0 0 1 .534-.216h8q.318 0 .534.216a.73.73 0 0 1 .216.535q0 .319-.216.534a.73.73 0 0 1-.534.215z'
      />
    </G>
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call-log.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M18.75 21.833q-2.893 0-5.863-1.368-2.97-1.37-5.467-3.886-2.517-2.496-3.885-5.462-1.37-2.967-1.369-5.872 0-.457.31-.768.31-.31.773-.31h3.567q.35 0 .598.235T7.749 5l.666 3.194q.043.335-.026.616a1 1 0 0 1-.26.477L5.704 11.75q.603 1.041 1.304 1.953.702.91 1.546 1.735a17 17 0 0 0 1.818 1.626A16 16 0 0 0 12.4 18.4l2.384-2.417q.23-.246.523-.337t.593-.046l3.081.649q.37.089.611.38a1 1 0 0 1 .241.654v3.467q0 .464-.309.774a1.05 1.05 0 0 1-.774.31M4.92 10.283l1.9-1.916-.537-2.617H3.77q.059 1.025.33 2.142.27 1.116.82 2.391m8.967 8.867q.987.459 2.128.742 1.14.283 2.234.341v-2.516l-2.466-.521zm-.842-15.4a.77.77 0 0 1-.565-.232.77.77 0 0 1-.23-.562q0-.33.23-.56a.77.77 0 0 1 .565-.23h8q.324 0 .556.234.232.232.232.557a.76.76 0 0 1-.232.564.76.76 0 0 1-.556.229zm0 3.5a.77.77 0 0 1-.565-.232.77.77 0 0 1-.23-.562q0-.33.23-.56a.77.77 0 0 1 .565-.23h8q.324 0 .556.233a.76.76 0 0 1 .232.558.76.76 0 0 1-.232.564.76.76 0 0 1-.556.229zm0 3.5a.77.77 0 0 1-.565-.232.77.77 0 0 1-.23-.562q0-.33.23-.56a.77.77 0 0 1 .565-.23h8q.324 0 .556.233a.76.76 0 0 1 .232.558.76.76 0 0 1-.232.564.76.76 0 0 1-.556.229z'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call-made-fill.tsx
================================================
import Svg, { Mask, Path, G } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Mask
      id='prefix__a'
      width={24}
      height={24}
      x={0}
      y={0}
      maskUnits='userSpaceOnUse'
      style={{
        maskType: "alpha",
      }}
    >
      <Path fill='#D9D9D9' d='M0 0h24v24H0z' />
    </Mask>
    <G mask='url(#prefix__a)'>
      <Path
        fill={color}
        d='M17 8.054 6.083 18.973a.72.72 0 0 1-.522.213.7.7 0 0 1-.532-.213.72.72 0 0 1-.217-.527q0-.31.217-.527L15.947 7H9.751a.73.73 0 0 1-.535-.216.73.73 0 0 1-.215-.534q0-.32.215-.535a.73.73 0 0 1 .535-.215h7.846q.383 0 .644.26.26.26.26.644v7.846q0 .319-.216.534a.73.73 0 0 1-.535.216.73.73 0 0 1-.534-.216.73.73 0 0 1-.215-.534z'
      />
    </G>
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call-made.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M17.245 7.854 5.83 19.284a.73.73 0 0 1-.554.235.8.8 0 0 1-.559-.244.75.75 0 0 1 .002-1.106L16.133 6.75H9.766a.75.75 0 0 1-.56-.234.78.78 0 0 1-.227-.56q0-.327.227-.558a.76.76 0 0 1 .56-.231h8.267q.333 0 .565.232a.76.76 0 0 1 .23.555v8.267q0 .333-.231.565a.77.77 0 0 1-.567.23.75.75 0 0 1-.56-.23.78.78 0 0 1-.225-.565z'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call-missed-fill.tsx
================================================
import Svg, { Mask, Path, G } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Mask
      id='prefix__a'
      width={24}
      height={24}
      x={0}
      y={0}
      maskUnits='userSpaceOnUse'
      style={{
        maskType: "alpha",
      }}
    >
      <Path fill='#D9D9D9' d='M0 0h24v24H0z' />
    </Mask>
    <G mask='url(#prefix__a)'>
      <Path
        fill={color}
        d='M5 10.021v4.181a.73.73 0 0 1-.215.534.73.73 0 0 1-.535.216.73.73 0 0 1-.534-.216.73.73 0 0 1-.216-.534V8.356q0-.387.259-.645a.88.88 0 0 1 .645-.259h5.846q.32 0 .534.215a.73.73 0 0 1 .216.535.73.73 0 0 1-.216.535.73.73 0 0 1-.534.215H6.054l5.773 5.773a.3.3 0 0 0 .221.087.3.3 0 0 0 .221-.087l6.66-6.66a.7.7 0 0 1 .522-.22q.3.003.532.236.217.232.225.527a.7.7 0 0 1-.225.527l-6.654 6.654q-.27.27-.608.401a1.9 1.9 0 0 1-.673.131q-.337 0-.673-.13a1.75 1.75 0 0 1-.608-.402z'
      />
    </G>
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call-missed-outgoing-fill.tsx
================================================
import Svg, { Mask, Path, G } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Mask
      id='prefix__a'
      width={24}
      height={24}
      x={0}
      y={0}
      maskUnits='userSpaceOnUse'
      style={{
        maskType: "alpha",
      }}
    >
      <Path fill='#D9D9D9' d='M0 0h24v24H0z' />
    </Mask>
    <G mask='url(#prefix__a)'>
      <Path
        fill={color}
        d='m19 10.021-5.767 5.768q-.272.27-.608.401a1.8 1.8 0 0 1-.673.131q-.336 0-.673-.13a1.75 1.75 0 0 1-.608-.402L4.017 9.135a.72.72 0 0 1-.212-.515.75.75 0 0 1 .212-.54.74.74 0 0 1 .535-.232q.302 0 .535.233l6.644 6.644a.3.3 0 0 0 .221.087q.134 0 .221-.087l5.773-5.773H13.75a.73.73 0 0 1-.534-.215.73.73 0 0 1-.216-.535q0-.32.216-.535a.73.73 0 0 1 .534-.215h5.846q.387 0 .645.259a.88.88 0 0 1 .259.645v5.846a.73.73 0 0 1-.215.534.73.73 0 0 1-.535.216.73.73 0 0 1-.535-.216.73.73 0 0 1-.215-.534z'
      />
    </G>
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call-missed-outgoing.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='m19.25 9.942-6.224 6.224a1.5 1.5 0 0 1-.52.345q-.28.105-.587.106-.306 0-.59-.106a1.5 1.5 0 0 1-.522-.346L3.702 9.06a.78.78 0 0 1-.237-.552.78.78 0 0 1 .222-.565.82.82 0 0 1 1.151.003l7.08 7.087L18.2 8.75H13.93a.77.77 0 0 1-.565-.232.77.77 0 0 1-.231-.562q0-.33.231-.56a.77.77 0 0 1 .565-.23h6.116q.324 0 .556.233.231.232.232.555v6.234q0 .333-.233.564a.76.76 0 0 1-.557.231.76.76 0 0 1-.564-.23.77.77 0 0 1-.23-.565z'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call-missed.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M4.751 9.942v4.246q0 .333-.233.564a.76.76 0 0 1-.557.231.76.76 0 0 1-.564-.23.77.77 0 0 1-.229-.565V7.954a.76.76 0 0 1 .231-.555.77.77 0 0 1 .565-.232h6.117q.323 0 .555.233.232.232.232.557a.76.76 0 0 1-.232.564.76.76 0 0 1-.555.23H5.8l6.284 6.282 7.11-7.11a.72.72 0 0 1 .557-.227.86.86 0 0 1 .568.25.8.8 0 0 1 .219.562.77.77 0 0 1-.238.55l-7.107 7.107q-.238.24-.52.346-.28.105-.587.106-.306 0-.59-.106a1.5 1.5 0 0 1-.521-.345z'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call-received-fill.tsx
================================================
import Svg, { Mask, Path, G } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Mask
      id='prefix__a'
      width={24}
      height={24}
      x={0}
      y={0}
      maskUnits='userSpaceOnUse'
      style={{
        maskType: "alpha",
      }}
    >
      <Path fill='#D9D9D9' d='M0 0h24v24H0z' />
    </Mask>
    <G mask='url(#prefix__a)'>
      <Path
        fill={color}
        d='M6.404 18.5a.87.87 0 0 1-.644-.26.87.87 0 0 1-.26-.644V9.75q0-.318.216-.534A.73.73 0 0 1 6.25 9q.32 0 .535.216A.73.73 0 0 1 7 9.75v6.196L17.92 5.027a.72.72 0 0 1 .521-.212.7.7 0 0 1 .532.212q.217.217.217.527a.72.72 0 0 1-.217.527L8.053 17h6.197q.319 0 .534.215a.73.73 0 0 1 .216.534q0 .32-.216.535a.73.73 0 0 1-.534.215z'
      />
    </G>
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call-received.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M5.967 18.833a.76.76 0 0 1-.56-.231.78.78 0 0 1-.227-.565V9.771q0-.325.227-.557a.76.76 0 0 1 .563-.23q.334 0 .564.23.23.232.229.557v6.366L18.18 4.717a.7.7 0 0 1 .545-.236.8.8 0 0 1 .559.24.76.76 0 0 1 .241.554q0 .312-.241.546L7.867 17.25h6.367q.333 0 .564.232a.76.76 0 0 1 .232.558q0 .334-.232.564a.77.77 0 0 1-.564.23z'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/call.tsx
================================================
import Svg, { Path } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Path
      fill={color}
      d='M19.751 20.833q-2.892 0-5.862-1.368-2.97-1.37-5.467-3.886-2.517-2.496-3.885-5.462-1.37-2.967-1.369-5.872 0-.458.31-.768t.773-.31h3.567q.35 0 .598.235T8.75 4l.666 3.194q.042.336-.026.617a1 1 0 0 1-.26.476L6.705 10.75q.605 1.041 1.305 1.953.702.91 1.545 1.735.859.882 1.82 1.626.96.742 2.026 1.336l2.384-2.417q.23-.246.523-.337t.593-.046l3.081.649q.37.089.611.38a1 1 0 0 1 .241.654v3.467q0 .464-.309.774a1.05 1.05 0 0 1-.774.31M5.922 9.283l1.9-1.916-.538-2.617H4.772q.058 1.025.33 2.142.27 1.116.82 2.391m8.967 8.867q.987.459 2.128.742 1.14.283 2.234.341v-2.516l-2.466-.521z'
    />
  </Svg>
);
export default SvgComponent;


================================================
FILE: examples/SampleApp/src/components/calls/icons/cancel-fill.tsx
================================================
import Svg, { Mask, Path, G } from "react-native-svg";
import type { SvgProps } from "react-native-svg";
const SvgComponent = ({ height, width, color }: SvgProps) => (
  <Svg width={width} height={height} fill='none' viewBox='0 0 24 24'>
    <Mask
      id='prefix__a'
      width={24}
      height={24}
      x={0}
      y={0}
      maskUnits='userSpaceOnUse'
      style={{
        maskType: "alpha",
      }}
    >
      <Path fill='#D9D9D9' d='M0 0h24v24H0z' />
    </Mask>
    <G mask='url(#prefix__a)'>
      <Path
        fill={color}
        d='m12 13.054 3.073 3.073q.208.208.522.213a.7.7 0 0 0 .532-.213.72.72 0 0 0 .217-.527.72.72 0 0 0-.217-.527L13.054 12l3.073-3.073a.73.73 0 0 0 .213-.522.7.7 0 0 0-.213-.532.72.72 0 0 0-.527-.217.72.72 0 0 0-.527.217L12 10.946 8.927 7.873a.73.73 0 0 0-.522-.213.7.7 0 0 0-.532.213.72.72 0 0 0-.217.527q0 .31.217.527L10.946 12l-3.073 3.073a.73.73 0 0 0-.213.522.7.7 0 0 0 .213.532q.217.217.527.217a.72.72 0 0 0 .527-.217zm.002 8.446a9.3 9.3 0 0 1-3.706-.748 9.6 9.6 0 0 1-3.016-2.03 9.6 9.6 0 0 1-2.032-3.016 9.25 9.25 0 0 1-.748-3.704q0-1.972.748-3.706a9.6 9.6 0 0 1 2.03-3.016 9.6 9.6 0 0 1 3.016-2.032 9.25 9.25 0 0 1 3.704-.748q1.972 0 3.706.748a9.6 9.6 0 0 1 3.017 2.03 9.6 9.6 0 0 1 2.03 3.016 9.25 9.25 0 0 1 .749 3.704q0 1.972-.748 3.706a9.6 9.6 0 0 1-2.03 3.017 9.6 9.6 0 0 1-3.016 2.03 9.25 9.25 0 0 1-3.704.749'
      />
    </G>
  </Svg>
);
export default SvgComponent;


======================
Download .txt
gitextract_hs1fkjg0/

├── .gitignore
├── README.md
├── examples/
│   ├── SampleApp/
│   │   ├── .bundle/
│   │   │   └── config
│   │   ├── .eslintrc.js
│   │   ├── .gitignore
│   │   ├── .prettierrc.js
│   │   ├── .vscode/
│   │   │   └── settings.json
│   │   ├── .watchmanconfig
│   │   ├── App.tsx
│   │   ├── AppErrorBoundary.tsx
│   │   ├── Gemfile
│   │   ├── README.md
│   │   ├── android/
│   │   │   ├── app/
│   │   │   │   ├── build.gradle
│   │   │   │   ├── debug.keystore
│   │   │   │   ├── proguard-rules.pro
│   │   │   │   └── src/
│   │   │   │       └── main/
│   │   │   │           ├── AndroidManifest.xml
│   │   │   │           ├── java/
│   │   │   │           │   └── com/
│   │   │   │           │       └── sampleapp/
│   │   │   │           │           ├── MainActivity.kt
│   │   │   │           │           └── MainApplication.kt
│   │   │   │           └── res/
│   │   │   │               ├── drawable/
│   │   │   │               │   └── rn_edit_text_material.xml
│   │   │   │               └── values/
│   │   │   │                   ├── colors.xml
│   │   │   │                   ├── strings.xml
│   │   │   │                   └── styles.xml
│   │   │   ├── build.gradle
│   │   │   ├── gradle/
│   │   │   │   └── wrapper/
│   │   │   │       ├── gradle-wrapper.jar
│   │   │   │       └── gradle-wrapper.properties
│   │   │   ├── gradle.properties
│   │   │   ├── gradlew
│   │   │   ├── gradlew.bat
│   │   │   └── settings.gradle
│   │   ├── app.json
│   │   ├── babel.config.js
│   │   ├── gesture-handler.js
│   │   ├── gesture-handler.native.js
│   │   ├── index.js
│   │   ├── ios/
│   │   │   ├── .xcode.env
│   │   │   ├── Podfile
│   │   │   ├── SampleApp/
│   │   │   │   ├── AppDelegate.swift
│   │   │   │   ├── Images.xcassets/
│   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Info.plist
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── PrivacyInfo.xcprivacy
│   │   │   ├── SampleApp.xcodeproj/
│   │   │   │   ├── project.pbxproj
│   │   │   │   └── xcshareddata/
│   │   │   │       └── xcschemes/
│   │   │   │           └── SampleApp.xcscheme
│   │   │   └── SampleApp.xcworkspace/
│   │   │       ├── contents.xcworkspacedata
│   │   │       └── xcshareddata/
│   │   │           └── WorkspaceSettings.xcsettings
│   │   ├── jest.config.js
│   │   ├── metro.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── assets/
│   │   │   │   └── icons/
│   │   │   │       ├── AccountCircle.tsx
│   │   │   │       ├── AddComment.tsx
│   │   │   │       ├── AiIcon.tsx
│   │   │   │       ├── ArrowBack.tsx
│   │   │   │       ├── Block.tsx
│   │   │   │       ├── Builder.tsx
│   │   │   │       ├── Call.tsx
│   │   │   │       ├── CallFill.tsx
│   │   │   │       ├── Chat.tsx
│   │   │   │       ├── Chatfill.tsx
│   │   │   │       ├── CheckFill.tsx
│   │   │   │       ├── Close.tsx
│   │   │   │       ├── Delete.tsx
│   │   │   │       ├── Flash.tsx
│   │   │   │       ├── Group.tsx
│   │   │   │       ├── GroupAdd.tsx
│   │   │   │       ├── GroupFill.tsx
│   │   │   │       ├── Info.tsx
│   │   │   │       ├── InfoIcon.tsx
│   │   │   │       ├── Logout.tsx
│   │   │   │       ├── Person.tsx
│   │   │   │       ├── PersonAdd.tsx
│   │   │   │       ├── PersonFill.tsx
│   │   │   │       ├── PersonOff.tsx
│   │   │   │       ├── Reset.tsx
│   │   │   │       ├── UserEmptyIcon.tsx
│   │   │   │       └── VideoCam.tsx
│   │   │   ├── components/
│   │   │   │   ├── AIAgent/
│   │   │   │   │   └── AIAgents.tsx
│   │   │   │   ├── calls/
│   │   │   │   │   ├── CallDetailHelper.tsx
│   │   │   │   │   ├── CallDetails.tsx
│   │   │   │   │   ├── CallHistory.tsx
│   │   │   │   │   ├── CallLogDetailHeader.tsx
│   │   │   │   │   ├── CallParticipants.tsx
│   │   │   │   │   ├── CallRecordings.tsx
│   │   │   │   │   ├── Calls.tsx
│   │   │   │   │   └── icons/
│   │   │   │   │       ├── call-end-fill.tsx
│   │   │   │   │       ├── call-end.tsx
│   │   │   │   │       ├── call-fill.tsx
│   │   │   │   │       ├── call-log-fill.tsx
│   │   │   │   │       ├── call-log.tsx
│   │   │   │   │       ├── call-made-fill.tsx
│   │   │   │   │       ├── call-made.tsx
│   │   │   │   │       ├── call-missed-fill.tsx
│   │   │   │   │       ├── call-missed-outgoing-fill.tsx
│   │   │   │   │       ├── call-missed-outgoing.tsx
│   │   │   │   │       ├── call-missed.tsx
│   │   │   │   │       ├── call-received-fill.tsx
│   │   │   │   │       ├── call-received.tsx
│   │   │   │   │       ├── call.tsx
│   │   │   │   │       ├── cancel-fill.tsx
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       └── play-arrow.tsx
│   │   │   │   ├── conversations/
│   │   │   │   │   ├── helper/
│   │   │   │   │   │   └── GroupListeners.ts
│   │   │   │   │   └── screens/
│   │   │   │   │       ├── AddMember.tsx
│   │   │   │   │       ├── AddMemberStyles.tsx
│   │   │   │   │       ├── BannedMember.tsx
│   │   │   │   │       ├── BannedMemberStyles.tsx
│   │   │   │   │       ├── Conversations.tsx
│   │   │   │   │       ├── CreateConversation.tsx
│   │   │   │   │       ├── GroupInfo.tsx
│   │   │   │   │       ├── GroupInfoStyles.tsx
│   │   │   │   │       ├── Messages.tsx
│   │   │   │   │       ├── OngoingCallScreen.tsx
│   │   │   │   │       ├── SearchMessages.tsx
│   │   │   │   │       ├── ThreadView.tsx
│   │   │   │   │       ├── TransferOwnership.tsx
│   │   │   │   │       ├── TransferOwnershipStyles.tsx
│   │   │   │   │       ├── UserInfo.tsx
│   │   │   │   │       ├── UserInfoStyles.tsx
│   │   │   │   │       ├── ViewMembers.tsx
│   │   │   │   │       └── qr_screen.tsx
│   │   │   │   ├── groups/
│   │   │   │   │   ├── GroupHelper.tsx
│   │   │   │   │   ├── Groups.tsx
│   │   │   │   │   └── styles.ts
│   │   │   │   ├── login/
│   │   │   │   │   ├── AppCredentials.tsx
│   │   │   │   │   ├── SampleUser.tsx
│   │   │   │   │   └── Skeleton.tsx
│   │   │   │   └── users/
│   │   │   │       └── Users.tsx
│   │   │   ├── config/
│   │   │   │   ├── config.json
│   │   │   │   └── store.ts
│   │   │   ├── declarations.d.ts
│   │   │   ├── hooks/
│   │   │   │   ├── useGroupMemberStatus.ts
│   │   │   │   └── useIsKeyboardVisible.ts
│   │   │   ├── navigation/
│   │   │   │   ├── AuthContext.tsx
│   │   │   │   ├── BottomTabNavigator.tsx
│   │   │   │   ├── NavigationService.ts
│   │   │   │   ├── RootStackNavigator.tsx
│   │   │   │   └── types.ts
│   │   │   └── utils/
│   │   │       ├── ActiveChatContext.tsx
│   │   │       ├── AppConstants.tsx
│   │   │       ├── CommonUtils.ts
│   │   │       ├── TooltipMenu.tsx
│   │   │       ├── helper.ts
│   │   │       └── themeTypography.ts
│   │   └── tsconfig.json
│   ├── SampleAppAI/
│   │   ├── .bundle/
│   │   │   └── config
│   │   ├── .eslintrc.js
│   │   ├── .gitignore
│   │   ├── .prettierrc.js
│   │   ├── .watchmanconfig
│   │   ├── App.tsx
│   │   ├── AppErrorBoundary.tsx
│   │   ├── Gemfile
│   │   ├── README.md
│   │   ├── android/
│   │   │   ├── app/
│   │   │   │   ├── build.gradle
│   │   │   │   ├── debug.keystore
│   │   │   │   ├── proguard-rules.pro
│   │   │   │   └── src/
│   │   │   │       └── main/
│   │   │   │           ├── AndroidManifest.xml
│   │   │   │           ├── java/
│   │   │   │           │   └── com/
│   │   │   │           │       └── cometchat/
│   │   │   │           │           └── ai/
│   │   │   │           │               └── sampleapp/
│   │   │   │           │                   ├── MainActivity.kt
│   │   │   │           │                   └── MainApplication.kt
│   │   │   │           └── res/
│   │   │   │               ├── drawable/
│   │   │   │               │   └── rn_edit_text_material.xml
│   │   │   │               └── values/
│   │   │   │                   ├── colors.xml
│   │   │   │                   ├── strings.xml
│   │   │   │                   └── styles.xml
│   │   │   ├── build.gradle
│   │   │   ├── gradle/
│   │   │   │   └── wrapper/
│   │   │   │       ├── gradle-wrapper.jar
│   │   │   │       └── gradle-wrapper.properties
│   │   │   ├── gradle.properties
│   │   │   ├── gradlew
│   │   │   ├── gradlew.bat
│   │   │   └── settings.gradle
│   │   ├── app.json
│   │   ├── babel.config.js
│   │   ├── gesture-handler.js
│   │   ├── gesture-handler.native.js
│   │   ├── index.js
│   │   ├── ios/
│   │   │   ├── .xcode.env
│   │   │   ├── Podfile
│   │   │   ├── SampleApp/
│   │   │   │   ├── AppDelegate.swift
│   │   │   │   ├── Images.xcassets/
│   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Info.plist
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── PrivacyInfo.xcprivacy
│   │   │   ├── SampleApp.xcodeproj/
│   │   │   │   ├── project.pbxproj
│   │   │   │   └── xcshareddata/
│   │   │   │       └── xcschemes/
│   │   │   │           └── SampleApp.xcscheme
│   │   │   └── SampleApp.xcworkspace/
│   │   │       ├── contents.xcworkspacedata
│   │   │       └── xcshareddata/
│   │   │           └── WorkspaceSettings.xcsettings
│   │   ├── jest.config.js
│   │   ├── metro.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── assets/
│   │   │   │   └── icons/
│   │   │   │       ├── AccountCircle.tsx
│   │   │   │       ├── AddComment.tsx
│   │   │   │       ├── ArrowBack.tsx
│   │   │   │       ├── Block.tsx
│   │   │   │       ├── Call.tsx
│   │   │   │       ├── CallFill.tsx
│   │   │   │       ├── Chat.tsx
│   │   │   │       ├── Chatfill.tsx
│   │   │   │       ├── CheckFill.tsx
│   │   │   │       ├── Close.tsx
│   │   │   │       ├── Delete.tsx
│   │   │   │       ├── Group.tsx
│   │   │   │       ├── GroupAdd.tsx
│   │   │   │       ├── GroupFill.tsx
│   │   │   │       ├── Info.tsx
│   │   │   │       ├── InfoIcon.tsx
│   │   │   │       ├── Logout.tsx
│   │   │   │       ├── Person.tsx
│   │   │   │       ├── PersonAdd.tsx
│   │   │   │       ├── PersonFill.tsx
│   │   │   │       ├── PersonOff.tsx
│   │   │   │       ├── UserEmptyIcon.tsx
│   │   │   │       └── VideoCam.tsx
│   │   │   ├── components/
│   │   │   │   ├── AIAgents.tsx
│   │   │   │   ├── Messages.tsx
│   │   │   │   └── login/
│   │   │   │       ├── AppCredentials.tsx
│   │   │   │       ├── SampleUser.tsx
│   │   │   │       └── Skeleton.tsx
│   │   │   ├── declarations.d.ts
│   │   │   ├── navigation/
│   │   │   │   ├── AuthContext.tsx
│   │   │   │   ├── BottomTabNavigator.tsx
│   │   │   │   ├── NavigationService.ts
│   │   │   │   ├── RootStackNavigator.tsx
│   │   │   │   └── types.ts
│   │   │   └── utils/
│   │   │       ├── ActiveChatContext.tsx
│   │   │       ├── AppConstants.tsx
│   │   │       ├── CommonUtils.ts
│   │   │       ├── TooltipMenu.tsx
│   │   │       └── helper.ts
│   │   └── tsconfig.json
│   ├── SampleAppExpo/
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   ├── App.tsx
│   │   ├── README.md
│   │   ├── app.json
│   │   ├── gesture-handler.js
│   │   ├── gesture-handler.native.js
│   │   ├── index.js
│   │   ├── metro.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── assets/
│   │   │   │   └── icons/
│   │   │   │       ├── AccountCircle.tsx
│   │   │   │       ├── AddComment.tsx
│   │   │   │       ├── AiIcon.tsx
│   │   │   │       ├── ArrowBack.tsx
│   │   │   │       ├── Block.tsx
│   │   │   │       ├── Builder.tsx
│   │   │   │       ├── Call.tsx
│   │   │   │       ├── CallFill.tsx
│   │   │   │       ├── Chat.tsx
│   │   │   │       ├── Chatfill.tsx
│   │   │   │       ├── CheckFill.tsx
│   │   │   │       ├── Close.tsx
│   │   │   │       ├── Delete.tsx
│   │   │   │       ├── Flash.tsx
│   │   │   │       ├── Group.tsx
│   │   │   │       ├── GroupAdd.tsx
│   │   │   │       ├── GroupFill.tsx
│   │   │   │       ├── Info.tsx
│   │   │   │       ├── InfoIcon.tsx
│   │   │   │       ├── Logout.tsx
│   │   │   │       ├── Person.tsx
│   │   │   │       ├── PersonAdd.tsx
│   │   │   │       ├── PersonFill.tsx
│   │   │   │       ├── PersonOff.tsx
│   │   │   │       ├── Reset.tsx
│   │   │   │       ├── UserEmptyIcon.tsx
│   │   │   │       └── VideoCam.tsx
│   │   │   ├── components/
│   │   │   │   ├── AIAgent/
│   │   │   │   │   └── AIAgents.tsx
│   │   │   │   ├── calls/
│   │   │   │   │   ├── CallDetailHelper.tsx
│   │   │   │   │   ├── CallDetails.tsx
│   │   │   │   │   ├── CallHistory.tsx
│   │   │   │   │   ├── CallLogDetailHeader.tsx
│   │   │   │   │   ├── CallParticipants.tsx
│   │   │   │   │   ├── CallRecordings.tsx
│   │   │   │   │   ├── Calls.tsx
│   │   │   │   │   └── icons/
│   │   │   │   │       ├── call-end-fill.tsx
│   │   │   │   │       ├── call-end.tsx
│   │   │   │   │       ├── call-fill.tsx
│   │   │   │   │       ├── call-log-fill.tsx
│   │   │   │   │       ├── call-log.tsx
│   │   │   │   │       ├── call-made-fill.tsx
│   │   │   │   │       ├── call-made.tsx
│   │   │   │   │       ├── call-missed-fill.tsx
│   │   │   │   │       ├── call-missed-outgoing-fill.tsx
│   │   │   │   │       ├── call-missed-outgoing.tsx
│   │   │   │   │       ├── call-missed.tsx
│   │   │   │   │       ├── call-received-fill.tsx
│   │   │   │   │       ├── call-received.tsx
│   │   │   │   │       ├── call.tsx
│   │   │   │   │       ├── cancel-fill.tsx
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       └── play-arrow.tsx
│   │   │   │   ├── conversations/
│   │   │   │   │   ├── helper/
│   │   │   │   │   │   └── GroupListeners.ts
│   │   │   │   │   └── screens/
│   │   │   │   │       ├── AddMember.tsx
│   │   │   │   │       ├── AddMemberStyles.tsx
│   │   │   │   │       ├── BannedMember.tsx
│   │   │   │   │       ├── BannedMemberStyles.tsx
│   │   │   │   │       ├── Conversations.tsx
│   │   │   │   │       ├── CreateConversation.tsx
│   │   │   │   │       ├── GroupInfo.tsx
│   │   │   │   │       ├── GroupInfoStyles.tsx
│   │   │   │   │       ├── Messages.tsx
│   │   │   │   │       ├── OngoingCallScreen.tsx
│   │   │   │   │       ├── SearchMessages.tsx
│   │   │   │   │       ├── ThreadView.tsx
│   │   │   │   │       ├── TransferOwnership.tsx
│   │   │   │   │       ├── TransferOwnershipStyles.tsx
│   │   │   │   │       ├── UserInfo.tsx
│   │   │   │   │       ├── UserInfoStyles.tsx
│   │   │   │   │       ├── ViewMembers.tsx
│   │   │   │   │       └── qr_screen.tsx
│   │   │   │   ├── groups/
│   │   │   │   │   ├── GroupHelper.tsx
│   │   │   │   │   ├── Groups.tsx
│   │   │   │   │   └── styles.ts
│   │   │   │   ├── login/
│   │   │   │   │   ├── AppCredentials.tsx
│   │   │   │   │   ├── SampleUser.tsx
│   │   │   │   │   └── Skeleton.tsx
│   │   │   │   └── users/
│   │   │   │       └── Users.tsx
│   │   │   ├── config/
│   │   │   │   ├── config.json
│   │   │   │   └── store.ts
│   │   │   ├── declarations.d.ts
│   │   │   ├── hooks/
│   │   │   │   ├── useGroupMemberStatus.ts
│   │   │   │   └── useIsKeyboardVisible.ts
│   │   │   ├── navigation/
│   │   │   │   ├── AuthContext.tsx
│   │   │   │   ├── BottomTabNavigator.tsx
│   │   │   │   ├── NavigationService.ts
│   │   │   │   ├── RootStackNavigator.tsx
│   │   │   │   └── types.ts
│   │   │   └── utils/
│   │   │       ├── ActiveChatContext.tsx
│   │   │       ├── AppConstants.tsx
│   │   │       ├── CommonUtils.ts
│   │   │       ├── TooltipMenu.tsx
│   │   │       ├── helper.ts
│   │   │       └── themeTypography.ts
│   │   └── tsconfig.json
│   └── SampleAppWithPushNotifications/
│       ├── .bundle/
│       │   └── config
│       ├── .eslintrc.js
│       ├── .gitignore
│       ├── .prettierrc.js
│       ├── .vscode/
│       │   └── settings.json
│       ├── .watchmanconfig
│       ├── App.tsx
│       ├── AppErrorBoundary.tsx
│       ├── Gemfile
│       ├── README.md
│       ├── __tests__/
│       │   └── App.test.tsx
│       ├── android/
│       │   ├── app/
│       │   │   ├── build.gradle
│       │   │   ├── cometchat_team_messanger.jks
│       │   │   ├── debug.keystore
│       │   │   ├── google-services.json
│       │   │   ├── proguard-rules.pro
│       │   │   └── src/
│       │   │       └── main/
│       │   │           ├── AndroidManifest.xml
│       │   │           ├── java/
│       │   │           │   └── com/
│       │   │           │       └── sampleappwithpushnotifications/
│       │   │           │           ├── MainActivity.kt
│       │   │           │           └── MainApplication.kt
│       │   │           └── res/
│       │   │               ├── drawable/
│       │   │               │   └── rn_edit_text_material.xml
│       │   │               └── values/
│       │   │                   ├── colors.xml
│       │   │                   ├── strings.xml
│       │   │                   └── styles.xml
│       │   ├── build.gradle
│       │   ├── gradle/
│       │   │   └── wrapper/
│       │   │       ├── gradle-wrapper.jar
│       │   │       └── gradle-wrapper.properties
│       │   ├── gradle.properties
│       │   ├── gradlew
│       │   ├── gradlew.bat
│       │   └── settings.gradle
│       ├── app.json
│       ├── babel.config.js
│       ├── cometchat_team_messanger.jks
│       ├── gesture-handler.js
│       ├── gesture-handler.native.js
│       ├── google-services.json
│       ├── index.js
│       ├── ios/
│       │   ├── .xcode.env
│       │   ├── GoogleService-Info.plist
│       │   ├── Podfile
│       │   ├── SampleAppWithPushNotifications/
│       │   │   ├── AppDelegate.swift
│       │   │   ├── Images.xcassets/
│       │   │   │   ├── AppIcon.appiconset/
│       │   │   │   │   └── Contents.json
│       │   │   │   └── Contents.json
│       │   │   ├── Info.plist
│       │   │   ├── LaunchScreen.storyboard
│       │   │   ├── PrivacyInfo.xcprivacy
│       │   │   ├── SampleAppWithPushNotifications-Bridging-Header.h
│       │   │   ├── SampleAppWithPushNotifications.entitlements
│       │   │   └── SampleAppWithPushNotificationsRelease.entitlements
│       │   ├── SampleAppWithPushNotifications-Bridging-Header.h
│       │   ├── SampleAppWithPushNotifications.xcodeproj/
│       │   │   ├── project.pbxproj
│       │   │   └── xcshareddata/
│       │   │       └── xcschemes/
│       │   │           └── SampleAppWithPushNotifications.xcscheme
│       │   └── SampleAppWithPushNotifications.xcworkspace/
│       │       ├── contents.xcworkspacedata
│       │       └── xcshareddata/
│       │           └── WorkspaceSettings.xcsettings
│       ├── jest.config.js
│       ├── metro.config.js
│       ├── package.json
│       ├── src/
│       │   ├── assets/
│       │   │   └── icons/
│       │   │       ├── AccountCircle.tsx
│       │   │       ├── AddComment.tsx
│       │   │       ├── AiIcon.tsx
│       │   │       ├── ArrowBack.tsx
│       │   │       ├── Block.tsx
│       │   │       ├── Builder.tsx
│       │   │       ├── Call.tsx
│       │   │       ├── CallFill.tsx
│       │   │       ├── Chat.tsx
│       │   │       ├── Chatfill.tsx
│       │   │       ├── CheckFill.tsx
│       │   │       ├── Close.tsx
│       │   │       ├── Delete.tsx
│       │   │       ├── Flash.tsx
│       │   │       ├── Group.tsx
│       │   │       ├── GroupAdd.tsx
│       │   │       ├── GroupFill.tsx
│       │   │       ├── Info.tsx
│       │   │       ├── InfoIcon.tsx
│       │   │       ├── Logout.tsx
│       │   │       ├── Person.tsx
│       │   │       ├── PersonAdd.tsx
│       │   │       ├── PersonFill.tsx
│       │   │       ├── PersonOff.tsx
│       │   │       ├── Reset.tsx
│       │   │       ├── UserEmptyIcon.tsx
│       │   │       └── VideoCam.tsx
│       │   ├── components/
│       │   │   ├── AIAgent/
│       │   │   │   └── AIAgents.tsx
│       │   │   ├── calls/
│       │   │   │   ├── CallDetailHelper.tsx
│       │   │   │   ├── CallDetails.tsx
│       │   │   │   ├── CallHistory.tsx
│       │   │   │   ├── CallLogDetailHeader.tsx
│       │   │   │   ├── CallParticipants.tsx
│       │   │   │   ├── CallRecordings.tsx
│       │   │   │   ├── Calls.tsx
│       │   │   │   └── icons/
│       │   │   │       ├── call-end-fill.tsx
│       │   │   │       ├── call-end.tsx
│       │   │   │       ├── call-fill.tsx
│       │   │   │       ├── call-log-fill.tsx
│       │   │   │       ├── call-log.tsx
│       │   │   │       ├── call-made-fill.tsx
│       │   │   │       ├── call-made.tsx
│       │   │   │       ├── call-missed-fill.tsx
│       │   │   │       ├── call-missed-outgoing-fill.tsx
│       │   │   │       ├── call-missed-outgoing.tsx
│       │   │   │       ├── call-missed.tsx
│       │   │   │       ├── call-received-fill.tsx
│       │   │   │       ├── call-received.tsx
│       │   │   │       ├── call.tsx
│       │   │   │       ├── cancel-fill.tsx
│       │   │   │       ├── index.tsx
│       │   │   │       └── play-arrow.tsx
│       │   │   ├── conversations/
│       │   │   │   ├── helper/
│       │   │   │   │   └── GroupListeners.ts
│       │   │   │   └── screens/
│       │   │   │       ├── AddMember.tsx
│       │   │   │       ├── AddMemberStyles.tsx
│       │   │   │       ├── BannedMember.tsx
│       │   │   │       ├── BannedMemberStyles.tsx
│       │   │   │       ├── Conversations.tsx
│       │   │   │       ├── CreateConversation.tsx
│       │   │   │       ├── GroupInfo.tsx
│       │   │   │       ├── GroupInfoStyles.tsx
│       │   │   │       ├── Messages.tsx
│       │   │   │       ├── OngoingCallScreen.tsx
│       │   │   │       ├── SearchMessages.tsx
│       │   │   │       ├── ThreadView.tsx
│       │   │   │       ├── TransferOwnership.tsx
│       │   │   │       ├── TransferOwnershipStyles.tsx
│       │   │   │       ├── UserInfo.tsx
│       │   │   │       ├── UserInfoStyles.tsx
│       │   │   │       ├── ViewMembers.tsx
│       │   │   │       └── qr_screen.tsx
│       │   │   ├── groups/
│       │   │   │   ├── GroupHelper.tsx
│       │   │   │   ├── Groups.tsx
│       │   │   │   └── styles.ts
│       │   │   ├── login/
│       │   │   │   ├── AppCredentials.tsx
│       │   │   │   ├── SampleUser.tsx
│       │   │   │   └── Skeleton.tsx
│       │   │   └── users/
│       │   │       └── Users.tsx
│       │   ├── config/
│       │   │   ├── config.json
│       │   │   └── store.ts
│       │   ├── declarations.d.ts
│       │   ├── hooks/
│       │   │   ├── useGroupMemberStatus.ts
│       │   │   └── useIsKeyboardVisible.ts
│       │   ├── navigation/
│       │   │   ├── AuthContext.tsx
│       │   │   ├── BottomTabNavigator.tsx
│       │   │   ├── NavigationService.ts
│       │   │   ├── RootStackNavigator.tsx
│       │   │   └── types.ts
│       │   └── utils/
│       │       ├── ActiveChatContext.tsx
│       │       ├── AppConstants.tsx
│       │       ├── CommonUtils.ts
│       │       ├── PendingCallManager.ts
│       │       ├── PushNotification.tsx
│       │       ├── TooltipMenu.tsx
│       │       ├── VoipNotificationHandler.ts
│       │       ├── helper.ts
│       │       └── themeTypography.ts
│       └── tsconfig.json
└── packages/
    └── ChatUiKit/
        ├── .gitignore
        ├── .prettierrc.json
        ├── CONTRIBUTING.md
        ├── LICENSE.md
        ├── README.md
        ├── SECURITY.md
        ├── SUPPORT.md
        ├── android/
        │   ├── .settings/
        │   │   └── org.eclipse.buildship.core.prefs
        │   ├── build.gradle
        │   ├── gradle/
        │   │   └── wrapper/
        │   │       ├── gradle-wrapper.jar
        │   │       └── gradle-wrapper.properties
        │   ├── gradle.properties
        │   ├── gradlew
        │   ├── gradlew.bat
        │   ├── settings.gradle
        │   └── src/
        │       └── main/
        │           ├── AndroidManifest.xml
        │           ├── java/
        │           │   └── com/
        │           │       ├── reactnativecometchatuikit/
        │           │       │   ├── CometChatImageViewer.java
        │           │       │   ├── CometChatSoundModule.java
        │           │       │   ├── CometChatVideoPlayer.java
        │           │       │   ├── CometChatWebView.java
        │           │       │   ├── CometchatUiKitModule.java
        │           │       │   ├── CometchatUiKitPackage.java
        │           │       │   ├── FileManager.java
        │           │       │   ├── ImageManager.java
        │           │       │   ├── ProximityModule.java
        │           │       │   ├── ReactVideoView.java
        │           │       │   ├── ReactVideoViewManager.java
        │           │       │   ├── RichTextEditorPackage.kt
        │           │       │   ├── RichTextEditorView.kt
        │           │       │   ├── RichTextEditorViewManager.kt
        │           │       │   ├── SoundPlayer.java
        │           │       │   ├── TimeZoneCodeManager.java
        │           │       │   └── WebViewManager.java
        │           │       ├── scalablevideoview/
        │           │       │   ├── BuildConfig.java
        │           │       │   ├── PivotPoint.java
        │           │       │   ├── ScalableType.java
        │           │       │   ├── ScalableVideoView.java
        │           │       │   ├── ScaleManager.java
        │           │       │   └── Size.java
        │           │       └── zipfile/
        │           │           ├── APEZProvider.java
        │           │           ├── APKExpansionSupport.java
        │           │           └── ZipResourceFile.java
        │           └── res/
        │               ├── values/
        │               │   └── attrs.xml
        │               └── xml/
        │                   └── filepaths.xml
        ├── babel.config.js
        ├── ios/
        │   ├── CometChatSoundModule.h
        │   ├── CometChatSoundModule.m
        │   ├── CometchatUiKit.h
        │   ├── CometchatUiKit.mm
        │   ├── CometchatUiKit.xcodeproj/
        │   │   ├── project.pbxproj
        │   │   └── project.xcworkspace/
        │   │       ├── contents.xcworkspacedata
        │   │       └── xcshareddata/
        │   │           └── IDEWorkspaceChecks.plist
        │   ├── CommonUtil.h
        │   ├── CommonUtil.m
        │   ├── FileManager.h
        │   ├── FileManager.m
        │   ├── Proximity.h
        │   ├── Proximity.m
        │   ├── RichTextEditorView.swift
        │   ├── RichTextEditorViewManager.m
        │   ├── RichTextEditorViewManager.swift
        │   ├── SoundPlayer.h
        │   ├── SoundPlayer.m
        │   ├── TimeZoneCodeManager.h
        │   ├── TimeZoneCodeManager.m
        │   ├── ToolbarIcons.swift
        │   ├── Video/
        │   │   ├── CCRCTVideo.h
        │   │   ├── CCRCTVideo.m
        │   │   ├── CCRCTVideoManager.h
        │   │   ├── CCRCTVideoManager.m
        │   │   ├── CCRCTVideoPlayerViewController.h
        │   │   ├── CCRCTVideoPlayerViewController.m
        │   │   ├── CCRCTVideoPlayerViewControllerDelegate.h
        │   │   ├── UIView+FindUIViewController.h
        │   │   └── UIView+FindUIViewController.m
        │   ├── VideoManager.h
        │   ├── VideoManager.m
        │   ├── VideoPickerModule.h
        │   ├── VideoPickerModule.mm
        │   ├── WebViewManager.h
        │   └── WebViewManager.m
        ├── package.json
        ├── packager.js
        ├── react-native-cometchat-ui-kit.podspec
        ├── src/
        │   ├── CometChatAIAssistantChatHistory/
        │   │   ├── CometChatAIAssistantChatHistory.tsx
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   └── style.ts
        │   ├── CometChatCompactMessageComposer/
        │   │   ├── CometChatCompactMessageComposer.tsx
        │   │   ├── SingleLineTextComposerConfiguration.tsx
        │   │   ├── heightUtils.ts
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── styles.ts
        │   ├── CometChatConversations/
        │   │   ├── CometChatConversations.tsx
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── style.ts
        │   ├── CometChatGroupMembers/
        │   │   ├── CometChatGroupMembers.tsx
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── style.ts
        │   ├── CometChatGroups/
        │   │   ├── CometChatGroups.tsx
        │   │   ├── GroupsStyle.ts
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── style.ts
        │   ├── CometChatMessageComposer/
        │   │   ├── CometChatMessageComposer.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── styles.tsx
        │   ├── CometChatMessageHeader/
        │   │   ├── CometChatMessageHeader.tsx
        │   │   ├── index.ts
        │   │   ├── listners.ts
        │   │   └── styles.ts
        │   ├── CometChatMessageInformation/
        │   │   ├── CometChatMessageInformation.tsx
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── styles.ts
        │   ├── CometChatMessageList/
        │   │   ├── CometChatMessageList.tsx
        │   │   ├── Skeleton.tsx
        │   │   ├── components/
        │   │   │   ├── MessageListItem.tsx
        │   │   │   ├── MessageModals.tsx
        │   │   │   ├── MessageOptionsSheet.tsx
        │   │   │   └── ReactionModals.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── style.ts
        │   ├── CometChatRichTextEditor/
        │   │   ├── RichTextEditorViewNativeComponent.ts
        │   │   ├── index.tsx
        │   │   └── types.ts
        │   ├── CometChatSearch/
        │   │   ├── CometChatSearch.tsx
        │   │   ├── SearchConstants.ts
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   └── style.ts
        │   ├── CometChatThreadHeader/
        │   │   ├── CometChatThreadHeader.tsx
        │   │   ├── Header.tsx
        │   │   ├── index.ts
        │   │   ├── resources/
        │   │   │   └── index.ts
        │   │   └── style.ts
        │   ├── CometChatUsers/
        │   │   ├── CometChatUsers.tsx
        │   │   ├── Skeleton.tsx
        │   │   ├── index.ts
        │   │   └── style.ts
        │   ├── calls/
        │   │   ├── CallEvents.ts
        │   │   ├── CallUtils.ts
        │   │   ├── CallingConfiguration.ts
        │   │   ├── CallingExtension.tsx
        │   │   ├── CallingExtensionDecorator.tsx
        │   │   ├── CallingPackage.ts
        │   │   ├── CometChatCallBubble/
        │   │   │   ├── CometChatCallBubble.tsx
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── styles.ts
        │   │   ├── CometChatCallButtons/
        │   │   │   ├── CometChatCallButtonConfiguration.ts
        │   │   │   ├── CometChatCallButtons.tsx
        │   │   │   ├── index.ts
        │   │   │   └── style.ts
        │   │   ├── CometChatCallLogs/
        │   │   │   ├── CometChatCallLogs.tsx
        │   │   │   ├── Skeleton.tsx
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── style.ts
        │   │   ├── CometChatIncomingCall/
        │   │   │   ├── CometChatIncomingCall.tsx
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── style.ts
        │   │   ├── CometChatOngoingCall/
        │   │   │   ├── CometChatOngoingCall.tsx
        │   │   │   └── index.ts
        │   │   ├── CometChatOutgoingCall/
        │   │   │   ├── CometChatOutgoingCall.tsx
        │   │   │   ├── OutgoingCallConfiguration.ts
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── styles.ts
        │   │   ├── index.ts
        │   │   └── resources/
        │   │       └── index.ts
        │   ├── extensions/
        │   │   ├── CollaborativeBubble/
        │   │   │   ├── CometChatCollaborativeBubble.tsx
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── style.ts
        │   │   ├── CollaborativeDocument/
        │   │   │   ├── CollaborativeDocumentExtension.tsx
        │   │   │   ├── CollaborativeDocumentExtensionDecorator.tsx
        │   │   │   ├── index.ts
        │   │   │   └── resources/
        │   │   │       └── index.ts
        │   │   ├── CollaborativeWhiteboard/
        │   │   │   ├── CollaborativeWhiteboardExtension.tsx
        │   │   │   ├── CollaborativeWhiteboardExtensionDecorator.tsx
        │   │   │   ├── index.ts
        │   │   │   └── resources/
        │   │   │       └── index.ts
        │   │   ├── ExtensionConstants.tsx
        │   │   ├── ExtensionModerator.tsx
        │   │   ├── LinkPreview/
        │   │   │   ├── LinkPreviewBubble.tsx
        │   │   │   ├── LinkPreviewExtension.tsx
        │   │   │   ├── LinkPreviewExtensionDecorator.tsx
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── style.ts
        │   │   ├── MessageTranslation/
        │   │   │   ├── MessageTranslationBubble.tsx
        │   │   │   ├── MessageTranslationDecorator.tsx
        │   │   │   ├── MessageTranslationExtension.tsx
        │   │   │   ├── index.ts
        │   │   │   └── resources/
        │   │   │       └── index.ts
        │   │   ├── Polls/
        │   │   │   ├── Header.tsx
        │   │   │   ├── Polls.tsx
        │   │   │   ├── PollsBubble.tsx
        │   │   │   ├── PollsConfigurations.ts
        │   │   │   ├── PollsDecorator.tsx
        │   │   │   ├── PollsExtension.tsx
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── style.ts
        │   │   ├── Stickers/
        │   │   │   ├── CometChatStickerKeyboard/
        │   │   │   │   ├── CometChatStickerKeyboard.tsx
        │   │   │   │   ├── Skeleton.tsx
        │   │   │   │   ├── StickerKeyboardConfiguration.ts
        │   │   │   │   ├── hooks.ts
        │   │   │   │   ├── index.ts
        │   │   │   │   └── style.ts
        │   │   │   ├── StickerConfiguration.ts
        │   │   │   ├── StickersBubble.tsx
        │   │   │   ├── StickersExtension.ts
        │   │   │   ├── StickersExtensionDecorator.tsx
        │   │   │   ├── index.ts
        │   │   │   ├── resources/
        │   │   │   │   └── index.ts
        │   │   │   └── style.ts
        │   │   ├── ThumbnailGeneration/
        │   │   │   ├── ThumbnailGenerationDecorator.tsx
        │   │   │   ├── ThumbnailGenerationExtension.tsx
        │   │   │   ├── index.ts
        │   │   │   └── resources/
        │   │   │       └── index.ts
        │   │   └── index.ts
        │   ├── imageresolver.d.ts
        │   ├── index.ts
        │   ├── shared/
        │   │   ├── CometChatUiKit/
        │   │   │   ├── CometChatUIKit.ts
        │   │   │   ├── CometChatUIKitHelper.ts
        │   │   │   ├── UIKitSettings.ts
        │   │   │   └── index.ts
        │   │   ├── assets/
        │   │   │   └── images/
        │   │   │       └── index.ts
        │   │   ├── base/
        │   │   │   ├── BaseStyle.ts
        │   │   │   ├── BorderStyle.ts
        │   │   │   ├── FontStyle.ts
        │   │   │   ├── ShadowStyle.ts
        │   │   │   ├── Types.ts
        │   │   │   ├── index.ts
        │   │   │   └── vars.ts
        │   │   ├── constants/
        │   │   │   └── UIKitConstants.ts
        │   │   ├── events/
        │   │   │   ├── CometChatMessageEvents/
        │   │   │   │   └── index.ts
        │   │   │   ├── CometChatUIEventHandler/
        │   │   │   │   ├── CometChatUIEventHandler.ts
        │   │   │   │   └── Listener.ts
        │   │   │   ├── CometChatUIEvents.ts
        │   │   │   ├── ListenerInitializer.ts
        │   │   │   ├── conversations.ts
        │   │   │   ├── groups.ts
        │   │   │   ├── index.ts
        │   │   │   └── messages.ts
        │   │   ├── formatters/
        │   │   │   ├── CometChatMentionsFormatter/
        │   │   │   │   ├── CometChatMentionsFormatter.tsx
        │   │   │   │   ├── MentionTextStyle.ts
        │   │   │   │   └── index.ts
        │   │   │   ├── CometChatRichTextFormatter/
        │   │   │   │   └── index.tsx
        │   │   │   ├── CometChatTextFormatter.ts
        │   │   │   ├── CometChatUrlsFormatter/
        │   │   │   │   └── index.tsx
        │   │   │   └── index.ts
        │   │   ├── framework/
        │   │   │   ├── ChatConfigurator.ts
        │   │   │   ├── DataSource.ts
        │   │   │   ├── DataSourceDecorator.tsx
        │   │   │   ├── ExtensionsDataSource.tsx
        │   │   │   ├── MessageDataSource.tsx
        │   │   │   ├── index.ts
        │   │   │   └── resources/
        │   │   │       └── index.ts
        │   │   ├── helper/
        │   │   │   ├── LocalizedDateHelper.ts
        │   │   │   ├── Toast.tsx
        │   │   │   ├── composerHelpers.ts
        │   │   │   ├── dateHelper.ts
        │   │   │   ├── functions.js
        │   │   │   ├── helperFunctions.ts
        │   │   │   ├── types/
        │   │   │   │   └── index.ts
        │   │   │   ├── useKeyboard.tsx
        │   │   │   └── useLocalizedDateHook.tsx
        │   │   ├── icons/
        │   │   │   ├── Icon.tsx
        │   │   │   ├── components/
        │   │   │   │   ├── ListItemCheck.tsx
        │   │   │   │   ├── StickerBase-icon.tsx
        │   │   │   │   ├── account-circle-fill.tsx
        │   │   │   │   ├── account-circle.tsx
        │   │   │   │   ├── activity.tsx
        │   │   │   │   ├── add-a-photo-fill.tsx
        │   │   │   │   ├── add-a-photo.tsx
        │   │   │   │   ├── add-box-fill.tsx
        │   │   │   │   ├── add-box.tsx
        │   │   │   │   ├── add-call-fill.tsx
        │   │   │   │   ├── add-call.tsx
        │   │   │   │   ├── add-circle-fill.tsx
        │   │   │   │   ├── add-circle.tsx
        │   │   │   │   ├── add-comment-fill.tsx
        │   │   │   │   ├── add-comment.tsx
        │   │   │   │   ├── add-fill.tsx
        │   │   │   │   ├── add-reaction-fill.tsx
        │   │   │   │   ├── add-reaction.tsx
        │   │   │   │   ├── add.tsx
        │   │   │   │   ├── ai-chat-history.tsx
        │   │   │   │   ├── ai-conversation-summary-fill.tsx
        │   │   │   │   ├── ai-conversation-summary.tsx
        │   │   │   │   ├── ai-copy-option.tsx
        │   │   │   │   ├── ai-fill.tsx
        │   │   │   │   ├── ai-new-chat.tsx
        │   │   │   │   ├── ai-send-button.tsx
        │   │   │   │   ├── ai-suggest-reply-fill.tsx
        │   │   │   │   ├── ai-suggest-reply.tsx
        │   │   │   │   ├── ai.tsx
        │   │   │   │   ├── alternate-email-fill.tsx
        │   │   │   │   ├── alternate-email.tsx
        │   │   │   │   ├── animals-&-nature.tsx
        │   │   │   │   ├── archive-fill.tsx
        │   │   │   │   ├── archive.tsx
        │   │   │   │   ├── arrow-back-fill.tsx
        │   │   │   │   ├── arrow-back.tsx
        │   │   │   │   ├── arrow-forward-fill.tsx
        │   │   │   │   ├── arrow-forward.tsx
        │   │   │   │   ├── attach-file-fill.tsx
        │   │   │   │   ├── attach-file.tsx
        │   │   │   │   ├── audio-file-type.tsx
        │   │   │   │   ├── bar-chart-fill.tsx
        │   │   │   │   ├── bar-chart.tsx
        │   │   │   │   ├── base-icon.tsx
        │   │   │   │   ├── bedtime-fill.tsx
        │   │   │   │   ├── bedtime.tsx
        │   │   │   │   ├── block-fill.tsx
        │   │   │   │   ├── block.tsx
        │   │   │   │   ├── bookmark-add-fill.tsx
        │   │   │   │   ├── bookmark-add.tsx
        │   │   │   │   ├── bookmark-fill.tsx
        │   │   │   │   ├── bookmark.tsx
        │   │   │   │   ├── calendar-add-on-fill.tsx
        │   │   │   │   ├── calendar-add-on.tsx
        │   │   │   │   ├── calendar-today-fill.tsx
        │   │   │   │   ├── calendar-today.tsx
        │   │   │   │   ├── call-end-fill.tsx
        │   │   │   │   ├── call-end.tsx
        │   │   │   │   ├── call-fill.tsx
        │   │   │   │   ├── call-log-fill.tsx
        │   │   │   │   ├── call-log.tsx
        │   │   │   │   ├── call-made-fill.tsx
        │   │   │   │   ├── call-made.tsx
        │   │   │   │   ├── call-missed-fill.tsx
        │   │   │   │   ├── call-missed-outgoing-fill.tsx
        │   │   │   │   ├── call-missed-outgoing.tsx
        │   │   │   │   ├── call-missed.tsx
        │   │   │   │   ├── call-received-fill.tsx
        │   │   │   │   ├── call-received.tsx
        │   │   │   │   ├── call.tsx
        │   │   │   │   ├── cancel-fill.tsx
        │   │   │   │   ├── cancel.tsx
        │   │   │   │   ├── change-circle-fill.tsx
        │   │   │   │   ├── change-circle.tsx
        │   │   │   │   ├── chat-bot-fill.tsx
        │   │   │   │   ├── chat-bot.tsx
        │   │   │   │   ├── chat-fill.tsx
        │   │   │   │   ├── chat.tsx
        │   │   │   │   ├── check-circle-fill.tsx
        │   │   │   │   ├── check-circle.tsx
        │   │   │   │   ├── check-fill.tsx
        │   │   │   │   ├── check.tsx
        │   │   │   │   ├── chevron-left-fill.tsx
        │   │   │   │   ├── chevron-left.tsx
        │   │   │   │   ├── chevron-right-fill.tsx
        │   │   │   │   ├── chevron-right.tsx
        │   │   │   │   ├── close-fill.tsx
        │   │   │   │   ├── close.tsx
        │   │   │   │   ├── code-blocks.tsx
        │   │   │   │   ├── code.tsx
        │   │   │   │   ├── collaborative-document-fill.tsx
        │   │   │   │   ├── collaborative-document-icon.tsx
        │   │   │   │   ├── collaborative-document.tsx
        │   │   │   │   ├── collaborative-whiteboard-fill.tsx
        │   │   │   │   ├── collaborative-whiteboard-icon.tsx
        │   │   │   │   ├── collaborative-whiteboard.tsx
        │   │   │   │   ├── content-copy-fill.tsx
        │   │   │   │   ├── content-copy.tsx
        │   │   │   │   ├── crop-fill.tsx
        │   │   │   │   ├── crop.tsx
        │   │   │   │   ├── delete-fill.tsx
        │   │   │   │   ├── delete.tsx
        │   │   │   │   ├── description-fill.tsx
        │   │   │   │   ├── description.tsx
        │   │   │   │   ├── document-file-type.tsx
        │   │   │   │   ├── documents.tsx
        │   │   │   │   ├── done-all-fill.tsx
        │   │   │   │   ├── done-all.tsx
        │   │   │   │   ├── download-fill.tsx
        │   │   │   │   ├── download.tsx
        │   │   │   │   ├── edit-calendar-fill.tsx
        │   │   │   │   ├── edit-calendar.tsx
        │   │   │   │   ├── edit-fill.tsx
        │   │   │   │   ├── edit-square-fill.tsx
        │   │   │   │   ├── edit-square.tsx
        │   │   │   │   ├── edit.tsx
        │   │   │   │   ├── empty-search.tsx
        │   │   │   │   ├── empty-state.tsx
        │   │   │   │   ├── error-fill.tsx
        │   │   │   │   ├── error-state.tsx
        │   │   │   │   ├── error.tsx
        │   │   │   │   ├── event-available-fill.tsx
        │   │   │   │   ├── event-available.tsx
        │   │   │   │   ├── event-fill.tsx
        │   │   │   │   ├── event.tsx
        │   │   │   │   ├── favorite-fill.tsx
        │   │   │   │   ├── favorite.tsx
        │   │   │   │   ├── filter-list-fill.tsx
        │   │   │   │   ├── filter-list-off-fill.tsx
        │   │   │   │   ├── filter-list-off.tsx
        │   │   │   │   ├── filter-list.tsx
        │   │   │   │   ├── flags.tsx
        │   │   │   │   ├── flip-camera-ios-fill.tsx
        │   │   │   │   ├── flip-camera-ios.tsx
        │   │   │   │   ├── food-&-drink.tsx
        │   │   │   │   ├── format-bold.tsx
        │   │   │   │   ├── format-italic.tsx
        │   │   │   │   ├── format-list-bulleted.tsx
        │   │   │   │   ├── format-list-numbered.tsx
        │   │   │   │   ├── format-quote.tsx
        │   │   │   │   ├── format-strikethrough.tsx
        │   │   │   │   ├── format-underlined.tsx
        │   │   │   │   ├── forward-fill.tsx
        │   │   │   │   ├── forward.tsx
        │   │   │   │   ├── gif-fill.tsx
        │   │   │   │   ├── gif.tsx
        │   │   │   │   ├── graphic-eq-fill.tsx
        │   │   │   │   ├── graphic-eq.tsx
        │   │   │   │   ├── group-add.tsx
        │   │   │   │   ├── group-fill.tsx
        │   │   │   │   ├── group.tsx
        │   │   │   │   ├── help-fill.tsx
        │   │   │   │   ├── help.tsx
        │   │   │   │   ├── history-fill.tsx
        │   │   │   │   ├── history.tsx
        │   │   │   │   ├── image-file-type.tsx
        │   │   │   │   ├── incoming-audio-fill.tsx
        │   │   │   │   ├── incoming-audio.tsx
        │   │   │   │   ├── incoming-video-fill.tsx
        │   │   │   │   ├── incoming-video.tsx
        │   │   │   │   ├── info-fill.tsx
        │   │   │   │   ├── info.tsx
        │   │   │   │   ├── keep-fill.tsx
        │   │   │   │   ├── keep-off-fill.tsx
        │   │   │   │   ├── keep-off.tsx
        │   │   │   │   ├── keep.tsx
        │   │   │   │   ├── keyboard-arrow-down-fill.tsx
        │   │   │   │   ├── keyboard-arrow-down.tsx
        │   │   │   │   ├── keyboard-arrow-up-fill.tsx
        │   │   │   │   ├── keyboard-arrow-up.tsx
        │   │   │   │   ├── keyboard-fill.tsx
        │   │   │   │   ├── keyboard.tsx
        │   │   │   │   ├── language-fill.tsx
        │   │   │   │   ├── language.tsx
        │   │   │   │   ├── link-fill.tsx
        │   │   │   │   ├── link.tsx
        │   │   │   │   ├── loading-fill.tsx
        │   │   │   │   ├── loading.tsx
        │   │   │   │   ├── location-on-fill.tsx
        │   │   │   │   ├── location-on.tsx
        │   │   │   │   ├── lock-fill.tsx
        │   │   │   │   ├── lock-open-fill.tsx
        │   │   │   │   ├── lock-open.tsx
        │   │   │   │   ├── lock.tsx
        │   │   │   │   ├── logout-fill.tsx
        │   │   │   │   ├── logout.tsx
        │   │   │   │   ├── mail-fill.tsx
        │   │   │   │   ├── mail.tsx
        │   │   │   │   ├── message-blocked.tsx
        │   │   │   │   ├── mic-fill.tsx
        │   │   │   │   ├── mic-off-fill.tsx
        │   │   │   │   ├── mic-off.tsx
        │   │   │   │   ├── mic.tsx
        │   │   │   │   ├── missed-video-call-fill.tsx
        │   │   │   │   ├── missed-video-call.tsx
        │   │   │   │   ├── mood-fill.tsx
        │   │   │   │   ├── mood.tsx
        │   │   │   │   ├── more-vert-fill.tsx
        │   │   │   │   ├── more-vert.tsx
        │   │   │   │   ├── near-me-fill.tsx
        │   │   │   │   ├── near-me.tsx
        │   │   │   │   ├── no-photography-fill.tsx
        │   │   │   │   ├── no-photography.tsx
        │   │   │   │   ├── notifications-fill.tsx
        │   │   │   │   ├── notifications-off-fill.tsx
        │   │   │   │   ├── notifications-off.tsx
        │   │   │   │   ├── notifications.tsx
        │   │   │   │   ├── objects.tsx
        │   │   │   │   ├── outgoing-audio-fill.tsx
        │   │   │   │   ├── outgoing-audio.tsx
        │   │   │   │   ├── outgoing-video-fill.tsx
        │   │   │   │   ├── outgoing-video.tsx
        │   │   │   │   ├── pause-fill.tsx
        │   │   │   │   ├── pause.tsx
        │   │   │   │   ├── pdf-file-type.tsx
        │   │   │   │   ├── person-add-fill.tsx
        │   │   │   │   ├── person-add.tsx
        │   │   │   │   ├── person-fill.tsx
        │   │   │   │   ├── person-off.tsx
        │   │   │   │   ├── person.tsx
        │   │   │   │   ├── phone-in-talk-fill.tsx
        │   │   │   │   ├── phone-in-talk.tsx
        │   │   │   │   ├── phone-incoming-fill.tsx
        │   │   │   │   ├── phone-incoming.tsx
        │   │   │   │   ├── phone-missed-fill.tsx
        │   │   │   │   ├── phone-missed.tsx
        │   │   │   │   ├── phone-outgoing-fill.tsx
        │   │   │   │   ├── phone-outgoing.tsx
        │   │   │   │   ├── photo-camera-fill.tsx
        │   │   │   │   ├── photo-camera.tsx
        │   │   │   │   ├── photo-fill.tsx
        │   │   │   │   ├── photo.tsx
        │   │   │   │   ├── play-arrow-fill.tsx
        │   │   │   │   ├── play-arrow.tsx
        │   │   │   │   ├── play-circle-fill.tsx
        │   │   │   │   ├── play-circle.tsx
        │   │   │   │   ├── poll-Icon.tsx
        │   │   │   │   ├── poll-fill.tsx
        │   │   │   │   ├── poll.tsx
        │   │   │   │   ├── presentation-file-type.tsx
        │   │   │   │   ├── rearrange-fill.tsx
        │   │   │   │   ├── rearrange.tsx
        │   │   │   │   ├── refresh-fill.tsx
        │   │   │   │   ├── refresh.tsx
        │   │   │   │   ├── reply-all-fill.tsx
        │   │   │   │   ├── reply-all.tsx
        │   │   │   │   ├── reply-fill.tsx
        │   │   │   │   ├── reply.tsx
        │   │   │   │   ├── retry-fill.tsx
        │   │   │   │   ├── retry.tsx
        │   │   │   │   ├── right-arrow.tsx
        │   │   │   │   ├── schedule-fill.tsx
        │   │   │   │   ├── schedule.tsx
        │   │   │   │   ├── screen-share-fill.tsx
        │   │   │   │   ├── screen-share.tsx
        │   │   │   │   ├── search-fill.tsx
        │   │   │   │   ├── search.tsx
        │   │   │   │   ├── send-fill.tsx
        │   │   │   │   ├── send.tsx
        │   │   │   │   ├── settings-fill.tsx
        │   │   │   │   ├── settings.tsx
        │   │   │   │   ├── share-fill.tsx
        │   │   │   │   ├── share.tsx
        │   │   │   │   ├── shield-fill.tsx
        │   │   │   │   ├── shield.tsx
        │   │   │   │   ├── smileys-&-people.tsx
        │   │   │   │   ├── spreadsheet-file-type.tsx
        │   │   │   │   ├── star-fill.tsx
        │   │   │   │   ├── star.tsx
        │   │   │   │   ├── sticker-fill.tsx
        │   │   │   │   ├── sticker.tsx
        │   │   │   │   ├── stop-circle-fill.tsx
        │   │   │   │   ├── stop-circle.tsx
        │   │   │   │   ├── stop-fill.tsx
        │   │   │   │   ├── stop-screen-share-fill.tsx
        │   │   │   │   ├── stop-screen-share.tsx
        │   │   │   │   ├── stop.tsx
        │   │   │   │   ├── subdirectory-arrow-left-fill.tsx
        │   │   │   │   ├── subdirectory-arrow-left.tsx
        │   │   │   │   ├── subdirectory-arrow-right-fill.tsx
        │   │   │   │   ├── subdirectory-arrow-right.tsx
        │   │   │   │   ├── sunny-fill.tsx
        │   │   │   │   ├── sunny.tsx
        │   │   │   │   ├── symbols.tsx
        │   │   │   │   ├── text-file-type.tsx
        │   │   │   │   ├── thumb-down-fill.tsx
        │   │   │   │   ├── thumb-down.tsx
        │   │   │   │   ├── thumb-up-fill.tsx
        │   │   │   │   ├── thumb-up.tsx
        │   │   │   │   ├── translate-fill.tsx
        │   │   │   │   ├── translate.tsx
        │   │   │   │   ├── travel-&-places.tsx
        │   │   │   │   ├── unknown-file-type.tsx
        │   │   │   │   ├── unread.tsx
        │   │   │   │   ├── upload-fill.tsx
        │   │   │   │   ├── upload.tsx
        │   │   │   │   ├── user-empty-icon.tsx
        │   │   │   │   ├── video-call-fill.tsx
        │   │   │   │   ├── video-call.tsx
        │   │   │   │   ├── video-file-type.tsx
        │   │   │   │   ├── videocam-fill.tsx
        │   │   │   │   ├── videocam-off-fill.tsx
        │   │   │   │   ├── videocam-off.tsx
        │   │   │   │   ├── videocam.tsx
        │   │   │   │   ├── visibility-off-fill.tsx
        │   │   │   │   ├── visibility-off.tsx
        │   │   │   │   ├── volume-down-fill.tsx
        │   │   │   │   ├── volume-down.tsx
        │   │   │   │   ├── volume-mute-fill.tsx
        │   │   │   │   ├── volume-mute.tsx
        │   │   │   │   ├── volume-off-fill.tsx
        │   │   │   │   ├── volume-off.tsx
        │   │   │   │   ├── volume-up-fill.tsx
        │   │   │   │   ├── volume-up.tsx
        │   │   │   │   ├── warning-fill.tsx
        │   │   │   │   ├── warning.tsx
        │   │   │   │   ├── wifi-fill.tsx
        │   │   │   │   ├── wifi.tsx
        │   │   │   │   ├── zip-file-type.tsx
        │   │   │   │   ├── zoom-in-map-fill.tsx
        │   │   │   │   ├── zoom-in-map.tsx
        │   │   │   │   ├── zoom-out-map-fill.tsx
        │   │   │   │   └── zoom-out-map.tsx
        │   │   │   └── icon-mapping.tsx
        │   │   ├── index.ts
        │   │   ├── libs/
        │   │   │   ├── ImageZoom/
        │   │   │   │   ├── ReactNativeZoomableView.tsx
        │   │   │   │   ├── ReactNativeZoomableViewWithGestures.tsx
        │   │   │   │   ├── helper.ts
        │   │   │   │   ├── index.tsx
        │   │   │   │   └── types/
        │   │   │   │       └── index.ts
        │   │   │   └── VideoPlayer/
        │   │   │       ├── DRMType.js
        │   │   │       ├── FilterType.js
        │   │   │       ├── TextTrackType.js
        │   │   │       └── VideoResizeMode.js
        │   │   ├── modals/
        │   │   │   ├── CometChatAIAssistantTools.ts
        │   │   │   ├── CometChatMessageOption.ts
        │   │   │   ├── CometChatMessageTemplate.ts
        │   │   │   ├── StreamMessage.ts
        │   │   │   └── index.ts
        │   │   ├── resources/
        │   │   │   ├── CometChatLocalizeNew/
        │   │   │   │   ├── CometChatI18nProvider.tsx
        │   │   │   │   ├── CometChatLocalizationHelper.ts
        │   │   │   │   ├── CometChatLocalizeContext.tsx
        │   │   │   │   ├── LocalizationManager.ts
        │   │   │   │   ├── index.ts
        │   │   │   │   ├── resources/
        │   │   │   │   │   ├── de/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── en/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── es/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── fr/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── hi/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── hu/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── it/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── ja/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── ko/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── lt/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── ms/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── nl/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── pt/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── ru/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── sv/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── tr/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   ├── zh/
        │   │   │   │   │   │   └── translation.json
        │   │   │   │   │   └── zh-tw/
        │   │   │   │   │       └── translation.json
        │   │   │   │   ├── type.ts
        │   │   │   │   └── useCometChatTranslationHook.ts
        │   │   │   ├── CometChatSoundManager/
        │   │   │   │   ├── CometChatSoundManager.js
        │   │   │   │   ├── index.ts
        │   │   │   │   ├── resources/
        │   │   │   │   │   └── index.js
        │   │   │   │   └── sound.js
        │   │   │   └── index.ts
        │   │   ├── services/
        │   │   │   └── stream-message.service.ts
        │   │   ├── utils/
        │   │   │   ├── CometChatMessageHelper/
        │   │   │   │   └── index.ts
        │   │   │   ├── CometChatMessagePreview/
        │   │   │   │   ├── CometChatMessagePreview.tsx
        │   │   │   │   ├── index.ts
        │   │   │   │   ├── resources/
        │   │   │   │   │   └── index.ts
        │   │   │   │   └── style.ts
        │   │   │   ├── CommonUtils.ts
        │   │   │   ├── MarkdownUtils.ts
        │   │   │   ├── MentionUtils.ts
        │   │   │   ├── MessageReceiptUtils.ts
        │   │   │   ├── MessageUtils.tsx
        │   │   │   ├── NetworkUtils.tsx
        │   │   │   ├── PermissionUtil.ts
        │   │   │   ├── conversationUtils.ts
        │   │   │   ├── icsToJson.js
        │   │   │   └── index.ts
        │   │   └── views/
        │   │       ├── CometChatAIAssistantMessageBubble/
        │   │       │   ├── CometChatAIAssistantMessageBubble.tsx
        │   │       │   └── index.ts
        │   │       ├── CometChatAICard/
        │   │       │   ├── CometChatAICard.tsx
        │   │       │   └── resources/
        │   │       │       └── index.ts
        │   │       ├── CometChatActionSheet/
        │   │       │   ├── ActionItem.ts
        │   │       │   ├── CometChatActionSheet.tsx
        │   │       │   ├── hooks.ts
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatAudioBubble/
        │   │       │   ├── AnimatedAudioWaves.tsx
        │   │       │   ├── CometChatAudioBubble.tsx
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatAvatar/
        │   │       │   ├── CometChatAvatar.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatBadge/
        │   │       │   ├── CometChatBadge.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatBottomSheet/
        │   │       │   ├── CometChatBottomSheet.tsx
        │   │       │   └── index.ts
        │   │       ├── CometChatConfirmDialog/
        │   │       │   ├── CometChatConfirmDialog.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatDate/
        │   │       │   ├── CometChatDate.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatDateSeperator/
        │   │       │   ├── CometChatDateSeparator.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatDeletedBubble/
        │   │       │   ├── CometChatDeletedBubble.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatEmojiKeyboard/
        │   │       │   ├── CometChatEmojiKeyboard.tsx
        │   │       │   ├── Emoji.ts
        │   │       │   ├── EmojiCategory.ts
        │   │       │   ├── emojis.ts
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatFileBubble/
        │   │       │   ├── CometChatFileBubble.tsx
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatImageBubble/
        │   │       │   ├── CometChatImageBubble.tsx
        │   │       │   ├── CometChatImageLoader.tsx
        │   │       │   ├── assets/
        │   │       │   │   └── index.ts
        │   │       │   └── index.ts
        │   │       ├── CometChatImageViewerModal/
        │   │       │   ├── ImageViewerModal.tsx
        │   │       │   ├── index.tsx
        │   │       │   └── resources/
        │   │       │       └── index.ts
        │   │       ├── CometChatInlineAudioRecorder/
        │   │       │   ├── AudioWaveformVisualizer.tsx
        │   │       │   ├── CometChatInlineAudioRecorder.tsx
        │   │       │   ├── index.ts
        │   │       │   ├── style.ts
        │   │       │   ├── types.ts
        │   │       │   └── useAudioRecorder.ts
        │   │       ├── CometChatLinkConfirmPopup/
        │   │       │   ├── CometChatLinkConfirmPopup.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatList/
        │   │       │   ├── CometChatList.tsx
        │   │       │   ├── Header.tsx
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatListItem/
        │   │       │   ├── CometChatListItem.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatMediaRecorder/
        │   │       │   ├── AnimatingMic.tsx
        │   │       │   ├── CometChatAudioPlayer.tsx
        │   │       │   ├── CometChatAudioPreview/
        │   │       │   │   └── CometChatAudioPreview.tsx
        │   │       │   ├── CometChatMediaRecorder.tsx
        │   │       │   ├── Timer.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatMessageBubble/
        │   │       │   ├── CometChatMessageBubble.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatMessageInput/
        │   │       │   ├── CometChatMessageInput.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatNewMessageIndicator/
        │   │       │   ├── CometChatNewMessageIndicator.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatQuickReactions/
        │   │       │   ├── CometChatQuickReactions.tsx
        │   │       │   ├── QuickReactionsStyle.tsx
        │   │       │   ├── index.ts
        │   │       │   └── resources/
        │   │       │       └── index.ts
        │   │       ├── CometChatReactionList/
        │   │       │   ├── CometChatReactionList.tsx
        │   │       │   ├── ReactionListStyle.tsx
        │   │       │   ├── Skeleton.tsx
        │   │       │   ├── index.ts
        │   │       │   └── resources/
        │   │       │       └── index.ts
        │   │       ├── CometChatReactions/
        │   │       │   ├── CometChatReactions.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatReceipt/
        │   │       │   ├── CometChatReceipt.tsx
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatReportDialog/
        │   │       │   ├── CometChatReportDialog.tsx
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatRetryButton/
        │   │       │   ├── CometChatRetryButton.tsx
        │   │       │   └── index.ts
        │   │       ├── CometChatSendButtonView/
        │   │       │   ├── CometChatSendButtonView.tsx
        │   │       │   └── index.ts
        │   │       ├── CometChatStatusIndicator/
        │   │       │   ├── CometChatStatusIndicator.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatStreamMessageBubble/
        │   │       │   ├── CometChatStreamMessageBubble.tsx
        │   │       │   └── index.ts
        │   │       ├── CometChatSuggestionList/
        │   │       │   ├── CometChatSuggestionList.tsx
        │   │       │   ├── Skeleton.tsx
        │   │       │   ├── SuggestionItem.ts
        │   │       │   ├── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatTextBubble/
        │   │       │   ├── CometChatTextBubble.tsx
        │   │       │   └── index.ts
        │   │       ├── CometChatTooltipMenu/
        │   │       │   ├── CometChatTooltipMenu.tsx
        │   │       │   ├── index.ts
        │   │       │   └── styles.ts
        │   │       ├── CometChatVideoBubble/
        │   │       │   ├── CometChatVideoBubble.tsx
        │   │       │   ├── index.ts
        │   │       │   ├── resources/
        │   │       │   │   └── index.ts
        │   │       │   └── style.ts
        │   │       ├── CometChatVideoPlayer/
        │   │       │   ├── CometChatVideoPlayer.tsx
        │   │       │   └── index.tsx
        │   │       ├── ErrorEmptyView/
        │   │       │   └── ErrorEmptyView.tsx
        │   │       └── index.ts
        │   └── theme/
        │       ├── CometChatThemeHelper.ts
        │       ├── context.ts
        │       ├── default/
        │       │   ├── color/
        │       │   │   ├── dark.ts
        │       │   │   └── light.ts
        │       │   ├── default.ts
        │       │   ├── index.ts
        │       │   ├── resources/
        │       │   │   └── icons/
        │       │   │       └── index.ts
        │       │   ├── spacing.ts
        │       │   └── typography.ts
        │       ├── hook.ts
        │       ├── index.ts
        │       ├── provider.tsx
        │       └── type.ts
        └── tsconfig.json
Download .txt
SYMBOL INDEX (1725 symbols across 383 files)

FILE: examples/SampleApp/App.tsx
  function init (line 74) | async function init() {

FILE: examples/SampleApp/AppErrorBoundary.tsx
  type State (line 4) | interface State {
  type Props (line 10) | interface Props {
  class AppErrorBoundary (line 14) | class AppErrorBoundary extends React.Component<Props, State> {
    method constructor (line 15) | constructor(props: Props) {
    method getDerivedStateFromError (line 21) | static getDerivedStateFromError(error: Error) {
    method componentDidCatch (line 26) | componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {
    method componentDidMount (line 31) | componentDidMount() {
    method render (line 43) | render() {

FILE: examples/SampleApp/index.js
  function globalErrorHandler (line 10) | function globalErrorHandler(error, isFatal) {

FILE: examples/SampleApp/src/components/AIAgent/AIAgents.tsx
  type AIAgentNavigationProp (line 9) | type AIAgentNavigationProp = StackNavigationProp<RootStackParamList, 'AI...

FILE: examples/SampleApp/src/components/calls/CallDetailHelper.tsx
  type CallDirection (line 7) | type CallDirection = 'incoming' | 'outgoing';
  type CallStatus (line 9) | type CallStatus =
  class CallDetailHelper (line 23) | class CallDetailHelper {

FILE: examples/SampleApp/src/components/calls/CallDetails.tsx
  constant TABS (line 30) | const TABS = {
  type Props (line 37) | type Props = StackScreenProps<RootStackParamList, 'CallDetails'>;

FILE: examples/SampleApp/src/components/calls/CallHistory.tsx
  function setRequestBuilder (line 31) | function setRequestBuilder() {

FILE: examples/SampleApp/src/components/calls/CallLogDetailHeader.tsx
  type CallLogDetailHeaderInterface (line 16) | type CallLogDetailHeaderInterface = {

FILE: examples/SampleApp/src/components/calls/Calls.tsx
  type CallNavigationProp (line 9) | type CallNavigationProp = StackNavigationProp<RootStackParamList, 'CallL...

FILE: examples/SampleApp/src/components/conversations/screens/BannedMember.tsx
  type BannedMembersRouteProp (line 41) | type BannedMembersRouteProp = {

FILE: examples/SampleApp/src/components/conversations/screens/BannedMemberStyles.tsx
  type BannedMemberStyle (line 74) | type BannedMemberStyle = CometChatListStylesInterface & {

FILE: examples/SampleApp/src/components/conversations/screens/Conversations.tsx
  type ChatNavigationProp (line 32) | type ChatNavigationProp = StackNavigationProp<

FILE: examples/SampleApp/src/components/conversations/screens/CreateConversation.tsx
  type Props (line 17) | type Props = {

FILE: examples/SampleApp/src/components/conversations/screens/GroupInfo.tsx
  type GroupInfoProps (line 40) | type GroupInfoProps = {

FILE: examples/SampleApp/src/components/conversations/screens/Messages.tsx
  type Props (line 51) | type Props = StackScreenProps<RootStackParamList, 'Messages'>;

FILE: examples/SampleApp/src/components/conversations/screens/OngoingCallScreen.tsx
  type Props (line 10) | type Props = {

FILE: examples/SampleApp/src/components/conversations/screens/SearchMessages.tsx
  type Props (line 21) | type Props = StackScreenProps<RootStackParamList, 'SearchMessages'>;

FILE: examples/SampleApp/src/components/conversations/screens/ThreadView.tsx
  type ThreadViewRouteProp (line 45) | type ThreadViewRouteProp = RouteProp<RootStackParamList, 'ThreadView'>;
  type ThreadViewNavProp (line 46) | type ThreadViewNavProp = StackNavigationProp<RootStackParamList>;

FILE: examples/SampleApp/src/components/conversations/screens/TransferOwnership.tsx
  type TransferOwnershipScreenProps (line 19) | type TransferOwnershipScreenProps = {

FILE: examples/SampleApp/src/components/conversations/screens/UserInfo.tsx
  type ScreenProps (line 33) | type ScreenProps = StackScreenProps<RootStackParamList, 'UserInfo'>;
  type NavigationProps (line 34) | type NavigationProps = StackNavigationProp<RootStackParamList, 'UserInfo'>;
  type Props (line 35) | type Props = ScreenProps & {navigation: NavigationProps};

FILE: examples/SampleApp/src/components/conversations/screens/qr_screen.tsx
  type ConfigData (line 19) | interface ConfigData {
  constant CONFIG_STORAGE_KEY (line 31) | const CONFIG_STORAGE_KEY = '@app_config';
  constant MINIMUM_LOADING_TIME (line 32) | const MINIMUM_LOADING_TIME = 5000;
  type ChatNavigationProp (line 46) | type ChatNavigationProp = StackNavigationProp<

FILE: examples/SampleApp/src/components/groups/GroupHelper.tsx
  type CreateGroupBottomSheetProps (line 48) | interface CreateGroupBottomSheetProps {
  type JoinGroupBottomSheetProps (line 320) | interface JoinGroupBottomSheetProps {

FILE: examples/SampleApp/src/components/groups/Groups.tsx
  type GroupNavigationProp (line 24) | type GroupNavigationProp = StackNavigationProp<RootStackParamList, 'Grou...
  type GroupsProps (line 26) | interface GroupsProps {

FILE: examples/SampleApp/src/components/login/AppCredentials.tsx
  function loadCredentials (line 98) | async function loadCredentials() {

FILE: examples/SampleApp/src/components/login/SampleUser.tsx
  type GridItem (line 38) | type GridItem = CometChat.User | { dummy: true };
  function fetchUsers (line 120) | async function fetchUsers(): Promise<CometChat.User[]> {
  function getDefaultUsers (line 142) | async function getDefaultUsers(): Promise<CometChat.User[]> {

FILE: examples/SampleApp/src/components/users/Users.tsx
  type UserNavigationProp (line 9) | type UserNavigationProp = StackNavigationProp<RootStackParamList, 'Users'>;

FILE: examples/SampleApp/src/config/store.ts
  type ColorConfig (line 6) | interface ColorConfig {
  type TypographyConfig (line 14) | interface TypographyConfig {
  type StyleConfig (line 19) | interface StyleConfig {
  type NoCodeStyles (line 25) | interface NoCodeStyles {
  type NoCodeConfig (line 34) | interface NoCodeConfig {
  type LayoutConfig (line 39) | interface LayoutConfig {
  type CoreMessagingConfig (line 46) | interface CoreMessagingConfig {
  type DeeperEngagementConfig (line 59) | interface DeeperEngagementConfig {
  type AiUserCopilotConfig (line 73) | interface AiUserCopilotConfig {
  type GroupManagementConfig (line 79) | interface GroupManagementConfig {
  type ModeratorControlsConfig (line 87) | interface ModeratorControlsConfig {
  type PrivateMessagingConfig (line 93) | interface PrivateMessagingConfig {
  type ChatFeaturesConfig (line 97) | interface ChatFeaturesConfig {
  type VoiceVideoCallingConfig (line 106) | interface VoiceVideoCallingConfig {
  type CallFeaturesConfig (line 113) | interface CallFeaturesConfig {
  type SettingsConfig (line 117) | interface SettingsConfig {
  type AppConfig (line 125) | interface AppConfig {
  type ConfigStore (line 136) | interface ConfigStore {

FILE: examples/SampleApp/src/navigation/AuthContext.tsx
  type AuthContextProps (line 3) | interface AuthContextProps {

FILE: examples/SampleApp/src/navigation/BottomTabNavigator.tsx
  type IconComponentType (line 35) | type IconComponentType = React.ComponentType<{

FILE: examples/SampleApp/src/navigation/NavigationService.ts
  type PendingNavigation (line 6) | interface PendingNavigation {
  function navigate (line 13) | function navigate<RouteName extends keyof RootStackParamList>(
  function processPendingNavigation (line 28) | function processPendingNavigation() {

FILE: examples/SampleApp/src/navigation/RootStackNavigator.tsx
  type Props (line 31) | type Props = {

FILE: examples/SampleApp/src/navigation/types.ts
  type CallType (line 4) | type CallType = 'audio' | 'video';
  type RootStackParamList (line 6) | type RootStackParamList = {
  type BottomTabParamList (line 63) | type BottomTabParamList = {

FILE: examples/SampleApp/src/utils/ActiveChatContext.tsx
  type ActiveChat (line 3) | type ActiveChat = {
  type ActiveChatContextType (line 8) | type ActiveChatContextType = {
  function ActiveChatProvider (line 15) | function ActiveChatProvider({ children }: { children: React.ReactNode }) {
  function useActiveChat (line 26) | function useActiveChat() {

FILE: examples/SampleApp/src/utils/AppConstants.tsx
  constant SCREEN_CONSTANTS (line 15) | const SCREEN_CONSTANTS = {

FILE: examples/SampleApp/src/utils/CommonUtils.ts
  class CommonUtils (line 1) | class CommonUtils {
    method clone (line 2) | static clone<T extends any>(arg: T): T {

FILE: examples/SampleApp/src/utils/TooltipMenu.tsx
  type CometChatTooltipMenuProps (line 17) | type CometChatTooltipMenuProps = {

FILE: examples/SampleApp/src/utils/helper.ts
  type Translations (line 20) | interface Translations {
  type NotifeeData (line 26) | interface NotifeeData {
  function requestAndroidPermissions (line 39) | async function requestAndroidPermissions() {
  function getLastSeenTime (line 57) | function getLastSeenTime(
  function navigateToConversation (line 224) | async function navigateToConversation(

FILE: examples/SampleApp/src/utils/themeTypography.ts
  type TypographyVariant (line 3) | type TypographyVariant = {
  type Typography (line 9) | type Typography = {
  constant FONT_MAP (line 26) | const FONT_MAP: Record<string, { regular: string; medium: string; bold: ...

FILE: examples/SampleAppAI/App.tsx
  function App (line 30) | function App() {
  function init (line 60) | async function init() {

FILE: examples/SampleAppAI/AppErrorBoundary.tsx
  type State (line 4) | interface State {
  type Props (line 10) | interface Props {
  class AppErrorBoundary (line 14) | class AppErrorBoundary extends React.Component<Props, State> {
    method constructor (line 15) | constructor(props: Props) {
    method getDerivedStateFromError (line 21) | static getDerivedStateFromError(error: Error) {
    method componentDidCatch (line 26) | componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {
    method componentDidMount (line 31) | componentDidMount() {
    method render (line 43) | render() {

FILE: examples/SampleAppAI/index.js
  function globalErrorHandler (line 10) | function globalErrorHandler(error, isFatal) {

FILE: examples/SampleAppAI/src/components/AIAgents.tsx
  type AIAgentNavigationProp (line 16) | type AIAgentNavigationProp = StackNavigationProp<RootStackParamList, 'Me...

FILE: examples/SampleAppAI/src/components/Messages.tsx
  type Props (line 42) | type Props = StackScreenProps<RootStackParamList, 'Messages'>;

FILE: examples/SampleAppAI/src/components/login/AppCredentials.tsx
  function loadCredentials (line 66) | async function loadCredentials() {

FILE: examples/SampleAppAI/src/components/login/SampleUser.tsx
  type GridItem (line 32) | type GridItem = CometChat.User | {dummy: true};
  function fetchUsers (line 86) | async function fetchUsers(): Promise<CometChat.User[]> {
  function getDefaultUsers (line 108) | async function getDefaultUsers(): Promise<CometChat.User[]> {

FILE: examples/SampleAppAI/src/navigation/AuthContext.tsx
  type AuthContextProps (line 3) | interface AuthContextProps {

FILE: examples/SampleAppAI/src/navigation/NavigationService.ts
  type PendingNavigation (line 6) | interface PendingNavigation {
  function navigate (line 13) | function navigate<RouteName extends keyof RootStackParamList>(
  function processPendingNavigation (line 28) | function processPendingNavigation() {

FILE: examples/SampleAppAI/src/navigation/RootStackNavigator.tsx
  type Props (line 15) | type Props = {

FILE: examples/SampleAppAI/src/navigation/types.ts
  type RootStackParamList (line 4) | type RootStackParamList = {
  type BottomTabParamList (line 17) | type BottomTabParamList = {

FILE: examples/SampleAppAI/src/utils/ActiveChatContext.tsx
  type ActiveChat (line 3) | type ActiveChat = {
  type ActiveChatContextType (line 8) | type ActiveChatContextType = {
  function ActiveChatProvider (line 15) | function ActiveChatProvider({ children }: { children: React.ReactNode }) {
  function useActiveChat (line 26) | function useActiveChat() {

FILE: examples/SampleAppAI/src/utils/AppConstants.tsx
  constant SCREEN_CONSTANTS (line 15) | const SCREEN_CONSTANTS = {

FILE: examples/SampleAppAI/src/utils/CommonUtils.ts
  class CommonUtils (line 1) | class CommonUtils {
    method clone (line 2) | static clone<T extends any>(arg: T): T {

FILE: examples/SampleAppAI/src/utils/TooltipMenu.tsx
  type CometChatTooltipMenuProps (line 17) | type CometChatTooltipMenuProps = {

FILE: examples/SampleAppAI/src/utils/helper.ts
  type Translations (line 20) | interface Translations {
  type NotifeeData (line 26) | interface NotifeeData {
  function requestAndroidPermissions (line 37) | async function requestAndroidPermissions() {
  function getLastSeenTime (line 55) | function getLastSeenTime(
  function navigateToConversation (line 222) | async function navigateToConversation(

FILE: examples/SampleAppExpo/App.tsx
  function init (line 75) | async function init() {

FILE: examples/SampleAppExpo/src/components/AIAgent/AIAgents.tsx
  type AIAgentNavigationProp (line 9) | type AIAgentNavigationProp = StackNavigationProp<RootStackParamList, 'AI...

FILE: examples/SampleAppExpo/src/components/calls/CallDetailHelper.tsx
  type CallDirection (line 7) | type CallDirection = 'incoming' | 'outgoing';
  type CallStatus (line 9) | type CallStatus =
  class CallDetailHelper (line 23) | class CallDetailHelper {

FILE: examples/SampleAppExpo/src/components/calls/CallDetails.tsx
  constant TABS (line 30) | const TABS = {
  type Props (line 37) | type Props = StackScreenProps<RootStackParamList, 'CallDetails'>;

FILE: examples/SampleAppExpo/src/components/calls/CallHistory.tsx
  function setRequestBuilder (line 31) | function setRequestBuilder() {

FILE: examples/SampleAppExpo/src/components/calls/CallLogDetailHeader.tsx
  type CallLogDetailHeaderInterface (line 16) | type CallLogDetailHeaderInterface = {

FILE: examples/SampleAppExpo/src/components/calls/Calls.tsx
  type CallNavigationProp (line 9) | type CallNavigationProp = StackNavigationProp<RootStackParamList, 'CallL...

FILE: examples/SampleAppExpo/src/components/conversations/screens/BannedMember.tsx
  type BannedMembersRouteProp (line 41) | type BannedMembersRouteProp = {

FILE: examples/SampleAppExpo/src/components/conversations/screens/BannedMemberStyles.tsx
  type BannedMemberStyle (line 74) | type BannedMemberStyle = CometChatListStylesInterface & {

FILE: examples/SampleAppExpo/src/components/conversations/screens/Conversations.tsx
  type ChatNavigationProp (line 32) | type ChatNavigationProp = StackNavigationProp<

FILE: examples/SampleAppExpo/src/components/conversations/screens/CreateConversation.tsx
  type Props (line 17) | type Props = {

FILE: examples/SampleAppExpo/src/components/conversations/screens/GroupInfo.tsx
  type GroupInfoProps (line 40) | type GroupInfoProps = {

FILE: examples/SampleAppExpo/src/components/conversations/screens/Messages.tsx
  type Props (line 51) | type Props = StackScreenProps<RootStackParamList, 'Messages'>;

FILE: examples/SampleAppExpo/src/components/conversations/screens/OngoingCallScreen.tsx
  type Props (line 10) | type Props = {

FILE: examples/SampleAppExpo/src/components/conversations/screens/SearchMessages.tsx
  type Props (line 21) | type Props = StackScreenProps<RootStackParamList, 'SearchMessages'>;

FILE: examples/SampleAppExpo/src/components/conversations/screens/ThreadView.tsx
  type ThreadViewRouteProp (line 44) | type ThreadViewRouteProp = RouteProp<RootStackParamList, 'ThreadView'>;
  type ThreadViewNavProp (line 45) | type ThreadViewNavProp = StackNavigationProp<RootStackParamList>;

FILE: examples/SampleAppExpo/src/components/conversations/screens/TransferOwnership.tsx
  type TransferOwnershipScreenProps (line 19) | type TransferOwnershipScreenProps = {

FILE: examples/SampleAppExpo/src/components/conversations/screens/UserInfo.tsx
  type ScreenProps (line 33) | type ScreenProps = StackScreenProps<RootStackParamList, 'UserInfo'>;
  type NavigationProps (line 34) | type NavigationProps = StackNavigationProp<RootStackParamList, 'UserInfo'>;
  type Props (line 35) | type Props = ScreenProps & {navigation: NavigationProps};

FILE: examples/SampleAppExpo/src/components/conversations/screens/qr_screen.tsx
  type ConfigData (line 19) | interface ConfigData {
  constant CONFIG_STORAGE_KEY (line 31) | const CONFIG_STORAGE_KEY = '@app_config';
  constant MINIMUM_LOADING_TIME (line 32) | const MINIMUM_LOADING_TIME = 5000;
  type ChatNavigationProp (line 46) | type ChatNavigationProp = StackNavigationProp<

FILE: examples/SampleAppExpo/src/components/groups/GroupHelper.tsx
  type CreateGroupBottomSheetProps (line 48) | interface CreateGroupBottomSheetProps {
  type JoinGroupBottomSheetProps (line 320) | interface JoinGroupBottomSheetProps {

FILE: examples/SampleAppExpo/src/components/groups/Groups.tsx
  type GroupNavigationProp (line 24) | type GroupNavigationProp = StackNavigationProp<RootStackParamList, 'Grou...
  type GroupsProps (line 26) | interface GroupsProps {

FILE: examples/SampleAppExpo/src/components/login/AppCredentials.tsx
  function loadCredentials (line 98) | async function loadCredentials() {

FILE: examples/SampleAppExpo/src/components/login/SampleUser.tsx
  type GridItem (line 38) | type GridItem = CometChat.User | { dummy: true };
  function fetchUsers (line 120) | async function fetchUsers(): Promise<CometChat.User[]> {
  function getDefaultUsers (line 142) | async function getDefaultUsers(): Promise<CometChat.User[]> {

FILE: examples/SampleAppExpo/src/components/users/Users.tsx
  type UserNavigationProp (line 9) | type UserNavigationProp = StackNavigationProp<RootStackParamList, 'Users'>;

FILE: examples/SampleAppExpo/src/config/store.ts
  type ColorConfig (line 6) | interface ColorConfig {
  type TypographyConfig (line 14) | interface TypographyConfig {
  type StyleConfig (line 19) | interface StyleConfig {
  type NoCodeStyles (line 25) | interface NoCodeStyles {
  type NoCodeConfig (line 34) | interface NoCodeConfig {
  type LayoutConfig (line 39) | interface LayoutConfig {
  type CoreMessagingConfig (line 46) | interface CoreMessagingConfig {
  type DeeperEngagementConfig (line 59) | interface DeeperEngagementConfig {
  type AiUserCopilotConfig (line 73) | interface AiUserCopilotConfig {
  type GroupManagementConfig (line 79) | interface GroupManagementConfig {
  type ModeratorControlsConfig (line 87) | interface ModeratorControlsConfig {
  type PrivateMessagingConfig (line 93) | interface PrivateMessagingConfig {
  type ChatFeaturesConfig (line 97) | interface ChatFeaturesConfig {
  type VoiceVideoCallingConfig (line 106) | interface VoiceVideoCallingConfig {
  type CallFeaturesConfig (line 113) | interface CallFeaturesConfig {
  type SettingsConfig (line 117) | interface SettingsConfig {
  type AppConfig (line 125) | interface AppConfig {
  type ConfigStore (line 136) | interface ConfigStore {

FILE: examples/SampleAppExpo/src/navigation/AuthContext.tsx
  type AuthContextProps (line 3) | interface AuthContextProps {

FILE: examples/SampleAppExpo/src/navigation/BottomTabNavigator.tsx
  type IconComponentType (line 35) | type IconComponentType = React.ComponentType<{

FILE: examples/SampleAppExpo/src/navigation/NavigationService.ts
  type PendingNavigation (line 6) | interface PendingNavigation {
  function navigate (line 13) | function navigate<RouteName extends keyof RootStackParamList>(
  function processPendingNavigation (line 28) | function processPendingNavigation() {

FILE: examples/SampleAppExpo/src/navigation/RootStackNavigator.tsx
  type Props (line 32) | type Props = {

FILE: examples/SampleAppExpo/src/navigation/types.ts
  type CallType (line 4) | type CallType = 'audio' | 'video';
  type RootStackParamList (line 6) | type RootStackParamList = {
  type BottomTabParamList (line 63) | type BottomTabParamList = {

FILE: examples/SampleAppExpo/src/utils/ActiveChatContext.tsx
  type ActiveChat (line 3) | type ActiveChat = {
  type ActiveChatContextType (line 8) | type ActiveChatContextType = {
  function ActiveChatProvider (line 15) | function ActiveChatProvider({ children }: { children?: React.ReactNode }) {
  function useActiveChat (line 26) | function useActiveChat() {

FILE: examples/SampleAppExpo/src/utils/AppConstants.tsx
  constant SCREEN_CONSTANTS (line 15) | const SCREEN_CONSTANTS = {

FILE: examples/SampleAppExpo/src/utils/CommonUtils.ts
  class CommonUtils (line 1) | class CommonUtils {
    method clone (line 2) | static clone<T extends any>(arg: T): T {

FILE: examples/SampleAppExpo/src/utils/TooltipMenu.tsx
  type CometChatTooltipMenuProps (line 17) | type CometChatTooltipMenuProps = {

FILE: examples/SampleAppExpo/src/utils/helper.ts
  type Translations (line 26) | interface Translations {
  type NotifeeData (line 32) | interface NotifeeData {
  function displayLocalNotification (line 45) | async function displayLocalNotification(
  function requestAndroidPermissions (line 129) | async function requestAndroidPermissions() {
  function checkInitialNotificationIOS (line 161) | async function checkInitialNotificationIOS() {
  function onRemoteNotificationIOS (line 214) | async function onRemoteNotificationIOS(notification: any) {
  function getAndRegisterFCMToken (line 262) | async function getAndRegisterFCMToken(
  function handleIosApnsToken (line 289) | async function handleIosApnsToken(
  function handleIosVoipToken (line 312) | async function handleIosVoipToken(user: boolean, voipToken: string) {
  function getLastSeenTime (line 326) | function getLastSeenTime(
  function navigateToConversation (line 493) | async function navigateToConversation(

FILE: examples/SampleAppExpo/src/utils/themeTypography.ts
  type TypographyVariant (line 3) | type TypographyVariant = {
  type Typography (line 9) | type Typography = {
  constant FONT_MAP (line 26) | const FONT_MAP: Record<string, { regular: string; medium: string; bold: ...

FILE: examples/SampleAppWithPushNotifications/App.tsx
  function init (line 93) | async function init() {
  function maybeResumePendingCall (line 159) | async function maybeResumePendingCall() {
  function checkAndNavigate (line 439) | async function checkAndNavigate() {

FILE: examples/SampleAppWithPushNotifications/AppErrorBoundary.tsx
  type State (line 4) | interface State {
  type Props (line 10) | interface Props {
  class AppErrorBoundary (line 14) | class AppErrorBoundary extends React.Component<Props, State> {
    method constructor (line 15) | constructor(props: Props) {
    method getDerivedStateFromError (line 21) | static getDerivedStateFromError(error: Error) {
    method componentDidCatch (line 26) | componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {
    method componentDidMount (line 31) | componentDidMount() {
    method render (line 43) | render() {

FILE: examples/SampleAppWithPushNotifications/index.js
  function globalErrorHandler (line 17) | function globalErrorHandler(error, isFatal) {

FILE: examples/SampleAppWithPushNotifications/src/components/AIAgent/AIAgents.tsx
  type AIAgentNavigationProp (line 9) | type AIAgentNavigationProp = StackNavigationProp<RootStackParamList, 'AI...

FILE: examples/SampleAppWithPushNotifications/src/components/calls/CallDetailHelper.tsx
  type CallDirection (line 7) | type CallDirection = 'incoming' | 'outgoing';
  type CallStatus (line 9) | type CallStatus =
  class CallDetailHelper (line 23) | class CallDetailHelper {

FILE: examples/SampleAppWithPushNotifications/src/components/calls/CallDetails.tsx
  constant TABS (line 30) | const TABS = {
  type Props (line 37) | type Props = StackScreenProps<RootStackParamList, 'CallDetails'>;

FILE: examples/SampleAppWithPushNotifications/src/components/calls/CallHistory.tsx
  function setRequestBuilder (line 31) | function setRequestBuilder() {

FILE: examples/SampleAppWithPushNotifications/src/components/calls/CallLogDetailHeader.tsx
  type CallLogDetailHeaderInterface (line 16) | type CallLogDetailHeaderInterface = {

FILE: examples/SampleAppWithPushNotifications/src/components/calls/Calls.tsx
  type CallNavigationProp (line 9) | type CallNavigationProp = StackNavigationProp<RootStackParamList, 'CallL...

FILE: examples/SampleAppWithPushNotifications/src/components/conversations/screens/BannedMember.tsx
  type BannedMembersRouteProp (line 41) | type BannedMembersRouteProp = {

FILE: examples/SampleAppWithPushNotifications/src/components/conversations/screens/BannedMemberStyles.tsx
  type BannedMemberStyle (line 74) | type BannedMemberStyle = CometChatListStylesInterface & {

FILE: examples/SampleAppWithPushNotifications/src/components/conversations/screens/Conversations.tsx
  type ChatNavigationProp (line 35) | type ChatNavigationProp = StackNavigationProp<

FILE: examples/SampleAppWithPushNotifications/src/components/conversations/screens/CreateConversation.tsx
  type Props (line 17) | type Props = {

FILE: examples/SampleAppWithPushNotifications/src/components/conversations/screens/GroupInfo.tsx
  type GroupInfoProps (line 40) | type GroupInfoProps = {

FILE: examples/SampleAppWithPushNotifications/src/components/conversations/screens/Messages.tsx
  type Props (line 51) | type Props = StackScreenProps<RootStackParamList, 'Messages'>;

FILE: examples/SampleAppWithPushNotifications/src/components/conversations/screens/OngoingCallScreen.tsx
  type Props (line 11) | type Props = {

FILE: examples/SampleAppWithPushNotifications/src/components/conversations/screens/SearchMessages.tsx
  type Props (line 21) | type Props = StackScreenProps<RootStackParamList, 'SearchMessages'>;

FILE: examples/SampleAppWithPushNotifications/src/components/conversations/screens/ThreadView.tsx
  type ThreadViewRouteProp (line 45) | type ThreadViewRouteProp = RouteProp<RootStackParamList, 'ThreadView'>;
  type ThreadViewNavProp (line 46) | type ThreadViewNavProp = StackNavigationProp<RootStackParamList>;

FILE: examples/SampleAppWithPushNotifications/src/components/conversations/screens/TransferOwnership.tsx
  type TransferOwnershipScreenProps (line 19) | type TransferOwnershipScreenProps = {

FILE: examples/SampleAppWithPushNotifications/src/components/conversations/screens/UserInfo.tsx
  type ScreenProps (line 33) | type ScreenProps = StackScreenProps<RootStackParamList, 'UserInfo'>;
  type NavigationProps (line 34) | type NavigationProps = StackNavigationProp<RootStackParamList, 'UserInfo'>;
  type Props (line 35) | type Props = ScreenProps & {navigation: NavigationProps};

FILE: examples/SampleAppWithPushNotifications/src/components/conversations/screens/qr_screen.tsx
  type ConfigData (line 19) | interface ConfigData {
  constant CONFIG_STORAGE_KEY (line 31) | const CONFIG_STORAGE_KEY = '@app_config';
  constant MINIMUM_LOADING_TIME (line 32) | const MINIMUM_LOADING_TIME = 5000;
  type ChatNavigationProp (line 46) | type ChatNavigationProp = StackNavigationProp<

FILE: examples/SampleAppWithPushNotifications/src/components/groups/GroupHelper.tsx
  type CreateGroupBottomSheetProps (line 48) | interface CreateGroupBottomSheetProps {
  type JoinGroupBottomSheetProps (line 320) | interface JoinGroupBottomSheetProps {

FILE: examples/SampleAppWithPushNotifications/src/components/groups/Groups.tsx
  type GroupNavigationProp (line 24) | type GroupNavigationProp = StackNavigationProp<RootStackParamList, 'Grou...
  type GroupsProps (line 26) | interface GroupsProps {

FILE: examples/SampleAppWithPushNotifications/src/components/login/AppCredentials.tsx
  function loadCredentials (line 98) | async function loadCredentials() {

FILE: examples/SampleAppWithPushNotifications/src/components/login/SampleUser.tsx
  type GridItem (line 38) | type GridItem = CometChat.User | { dummy: true };
  function fetchUsers (line 120) | async function fetchUsers(): Promise<CometChat.User[]> {
  function getDefaultUsers (line 142) | async function getDefaultUsers(): Promise<CometChat.User[]> {

FILE: examples/SampleAppWithPushNotifications/src/components/users/Users.tsx
  type UserNavigationProp (line 9) | type UserNavigationProp = StackNavigationProp<RootStackParamList, 'Users'>;

FILE: examples/SampleAppWithPushNotifications/src/config/store.ts
  type ColorConfig (line 6) | interface ColorConfig {
  type TypographyConfig (line 14) | interface TypographyConfig {
  type StyleConfig (line 19) | interface StyleConfig {
  type NoCodeStyles (line 25) | interface NoCodeStyles {
  type NoCodeConfig (line 34) | interface NoCodeConfig {
  type LayoutConfig (line 39) | interface LayoutConfig {
  type CoreMessagingConfig (line 46) | interface CoreMessagingConfig {
  type DeeperEngagementConfig (line 59) | interface DeeperEngagementConfig {
  type AiUserCopilotConfig (line 73) | interface AiUserCopilotConfig {
  type GroupManagementConfig (line 79) | interface GroupManagementConfig {
  type ModeratorControlsConfig (line 87) | interface ModeratorControlsConfig {
  type PrivateMessagingConfig (line 93) | interface PrivateMessagingConfig {
  type ChatFeaturesConfig (line 97) | interface ChatFeaturesConfig {
  type VoiceVideoCallingConfig (line 106) | interface VoiceVideoCallingConfig {
  type CallFeaturesConfig (line 113) | interface CallFeaturesConfig {
  type SettingsConfig (line 117) | interface SettingsConfig {
  type AppConfig (line 125) | interface AppConfig {
  type ConfigStore (line 136) | interface ConfigStore {

FILE: examples/SampleAppWithPushNotifications/src/navigation/AuthContext.tsx
  type AuthContextProps (line 3) | interface AuthContextProps {

FILE: examples/SampleAppWithPushNotifications/src/navigation/BottomTabNavigator.tsx
  type IconComponentType (line 35) | type IconComponentType = React.ComponentType<{

FILE: examples/SampleAppWithPushNotifications/src/navigation/NavigationService.ts
  type PendingNavigation (line 6) | interface PendingNavigation {
  function navigate (line 13) | function navigate<RouteName extends keyof RootStackParamList>(
  function processPendingNavigation (line 28) | function processPendingNavigation() {

FILE: examples/SampleAppWithPushNotifications/src/navigation/RootStackNavigator.tsx
  type Props (line 33) | type Props = {
  function checkInitialNotification (line 54) | async function checkInitialNotification() {

FILE: examples/SampleAppWithPushNotifications/src/navigation/types.ts
  type CallType (line 4) | type CallType = 'audio' | 'video';
  type RootStackParamList (line 6) | type RootStackParamList = {
  type BottomTabParamList (line 63) | type BottomTabParamList = {

FILE: examples/SampleAppWithPushNotifications/src/utils/ActiveChatContext.tsx
  type ActiveChat (line 3) | type ActiveChat = {
  type ActiveChatContextType (line 8) | type ActiveChatContextType = {
  function ActiveChatProvider (line 15) | function ActiveChatProvider({ children }: { children: React.ReactNode }) {
  function useActiveChat (line 26) | function useActiveChat() {

FILE: examples/SampleAppWithPushNotifications/src/utils/AppConstants.tsx
  constant SCREEN_CONSTANTS (line 15) | const SCREEN_CONSTANTS = {

FILE: examples/SampleAppWithPushNotifications/src/utils/CommonUtils.ts
  class CommonUtils (line 1) | class CommonUtils {
    method clone (line 2) | static clone<T extends any>(arg: T): T {

FILE: examples/SampleAppWithPushNotifications/src/utils/PendingCallManager.ts
  type PendingAnsweredCallPayload (line 7) | interface PendingAnsweredCallPayload {
  constant STORAGE_KEY (line 14) | const STORAGE_KEY = 'pendingAnsweredCall';
  function setPendingAnsweredCall (line 16) | async function setPendingAnsweredCall(payload: PendingAnsweredCallPayloa...
  function consumePendingAnsweredCall (line 26) | async function consumePendingAnsweredCall(): Promise<PendingAnsweredCall...
  function isPendingStale (line 48) | function isPendingStale(p: PendingAnsweredCallPayload, maxAgeMs = 2 * 60...

FILE: examples/SampleAppWithPushNotifications/src/utils/TooltipMenu.tsx
  type CometChatTooltipMenuProps (line 17) | type CometChatTooltipMenuProps = {

FILE: examples/SampleAppWithPushNotifications/src/utils/VoipNotificationHandler.ts
  function generateUUID (line 13) | function generateUUID(): string {
  class VoipNotificationHandler (line 45) | class VoipNotificationHandler {
    method constructor (line 65) | constructor() {
    method initialize (line 75) | async initialize(): Promise<void> {
    method getPermissions (line 103) | async getPermissions() {
    method createNotificationChannel (line 128) | async createNotificationChannel() {
    method displayCallAndroid (line 149) | async displayCallAndroid(): Promise<void> {
    method didDisplayIncomingCall (line 204) | didDisplayIncomingCall(args: { callUUID?: string; error?: any }) {
    method removeCallDialer (line 319) | removeCallDialer() {
    method cancel (line 369) | async cancel(notificationId: any) {
    method setupEventListeners (line 379) | setupEventListeners() {

FILE: examples/SampleAppWithPushNotifications/src/utils/helper.ts
  type Translations (line 26) | interface Translations {
  type NotifeeData (line 32) | interface NotifeeData {
  function displayLocalNotification (line 46) | async function displayLocalNotification(
  function requestAndroidPermissions (line 154) | async function requestAndroidPermissions() {
  function checkInitialNotificationIOS (line 186) | async function checkInitialNotificationIOS() {
  function onRemoteNotificationIOS (line 239) | async function onRemoteNotificationIOS(notification: any) {
  function getAndRegisterFCMToken (line 298) | async function getAndRegisterFCMToken(
  function handleIosApnsToken (line 325) | async function handleIosApnsToken(
  function handleIosVoipToken (line 348) | async function handleIosVoipToken(user: boolean, voipToken: string) {
  function getLastSeenTime (line 362) | function getLastSeenTime(
  function navigateToConversation (line 529) | async function navigateToConversation(

FILE: examples/SampleAppWithPushNotifications/src/utils/themeTypography.ts
  type TypographyVariant (line 3) | type TypographyVariant = {
  type Typography (line 9) | type Typography = {
  constant FONT_MAP (line 26) | const FONT_MAP: Record<string, { regular: string; medium: string; bold: ...

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/CometChatImageViewer.java
  class CometChatImageViewer (line 24) | public class CometChatImageViewer extends AppCompatActivity {
    method onCreate (line 28) | @Override
    class DownloadImage (line 50) | class DownloadImage extends AsyncTask<String, String, Bitmap> {
      method doInBackground (line 51) | @Override
      method onPostExecute (line 56) | @Override
    method getImageBitmap (line 63) | private Bitmap getImageBitmap(String url) {

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/CometChatSoundModule.java
  class CometChatSoundModule (line 27) | public class CometChatSoundModule
    method CometChatSoundModule (line 39) | public CometChatSoundModule(ReactApplicationContext context) {
    method setOnPlay (line 45) | private void setOnPlay(boolean isPlaying, final Double playerKey) {
    method getName (line 55) | @Override
    method multiply (line 60) | @ReactMethod
    method prepare (line 65) | @ReactMethod
    method createMediaPlayer (line 182) | protected MediaPlayer createMediaPlayer(final String fileName) {
    method play (line 258) | @ReactMethod
    method checkMode (line 318) | @ReactMethod
    method pause (line 343) | @ReactMethod
    method stop (line 355) | @ReactMethod
    method reset (line 374) | @ReactMethod
    method release (line 382) | @ReactMethod
    method onCatalystInstanceDestroy (line 400) | @Override
    method setVolume (line 414) | @ReactMethod
    method checkOtherAudioPlaying (line 422) | @ReactMethod
    method getSystemVolume (line 441) | @ReactMethod
    method setSystemVolume (line 460) | @ReactMethod
    method setLooping (line 472) | @ReactMethod
    method setSpeed (line 480) | @ReactMethod
    method setPitch (line 493) | @ReactMethod
    method setCurrentTime (line 506) | @ReactMethod
    method getCurrentTime (line 514) | @ReactMethod
    method setSpeakerphoneOn (line 525) | @ReactMethod
    method setCategory (line 541) | @ReactMethod
    method onAudioFocusChange (line 547) | @Override
    method enable (line 569) | @ReactMethod
    method getConstants (line 574) | @Override
    method addListener (line 581) | @ReactMethod
    method removeListeners (line 586) | @ReactMethod

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/CometChatVideoPlayer.java
  class CometChatVideoPlayer (line 16) | public class CometChatVideoPlayer extends AppCompatActivity {
    method onCreate (line 19) | @Override

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/CometChatWebView.java
  class CometChatWebView (line 14) | public class CometChatWebView extends AppCompatActivity {
    method onCreate (line 15) | @Override

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/CometchatUiKitModule.java
  class CometchatUiKitModule (line 11) | @ReactModule(name = CometchatUiKitModule.NAME)
    method CometchatUiKitModule (line 15) | public CometchatUiKitModule(ReactApplicationContext reactContext) {
    method getName (line 19) | @Override

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/CometchatUiKitPackage.java
  class CometchatUiKitPackage (line 16) | public class CometchatUiKitPackage implements ReactPackage {
    method createNativeModules (line 17) | @NonNull
    method createViewManagers (line 32) | @NonNull

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/FileManager.java
  class FileManager (line 75) | public class FileManager extends ReactContextBaseJavaModule {
    method onReceive (line 101) | @Override
    method FileManager (line 119) | FileManager(ReactApplicationContext context) {
    method onActivityResult (line 133) | @Override
    method saveImageFromCameraAndReturn (line 211) | private void saveImageFromCameraAndReturn(int resultCode, Intent data,...
    method getMetadataForCameraImage (line 233) | private WritableMap getMetadataForCameraImage(Uri uri) {
    method getMetadata (line 249) | private WritableMap getMetadata(Uri uri) {
    method prepareFileUri (line 284) | private void prepareFileUri(Context context, WritableMap map, Uri uri) {
    method copyFileToLocalStorage (line 288) | private void copyFileToLocalStorage(Context context, WritableMap map, ...
    method copyFile (line 311) | public Uri copyFile(Context context, Uri uri, File destFile) throws Ex...
    method onShowActivityResult (line 322) | private void onShowActivityResult(int resultCode, Intent data, Callbac...
    method onReceive (line 363) | public void onReceive(Context context, Intent intent) {
    method getType (line 368) | private String getType(String type) {
    method shareMessage (line 383) | @ReactMethod
    method downloadFileInNewThread (line 412) | public static void downloadFileInNewThread(Context context, String fil...
    method handleDownloadSuccess (line 453) | private static void handleDownloadSuccess(Context context, String mime...
    method handleDownloadFailure (line 459) | private static void handleDownloadFailure(Context context) {
    method shareFile (line 467) | private static void shareFile(String mimeType, Context context, File f...
    method startAmplitudePolling (line 493) | private void startAmplitudePolling() {
    method stopAmplitudePolling (line 524) | private void stopAmplitudePolling() {
    method startRecording (line 531) | @ReactMethod
    method requestPermissions (line 580) | private void requestPermissions() {
    method checkPermissions (line 587) | private boolean checkPermissions() {
    method playAudio (line 592) | @ReactMethod
    method pauseRecording (line 684) | @ReactMethod
    method resumeRecording (line 704) | @ReactMethod
    method pausePlaying (line 724) | @ReactMethod
    method resumePlaying (line 760) | @ReactMethod
    method stopPlaying (line 803) | @ReactMethod
    method releaseMediaResources (line 836) | @ReactMethod
    method deleteFile (line 889) | @ReactMethod
    method finalizeSegment (line 911) | @ReactMethod
    method startNewSegment (line 947) | @ReactMethod
    method mergeSegments (line 1004) | @ReactMethod
    method playSegments (line 1179) | @ReactMethod
    method createMediaPlayerForPath (line 1216) | private MediaPlayer createMediaPlayerForPath(String path) throws Excep...
    method playNextSegmentGapless (line 1244) | private void playNextSegmentGapless(final Callback callback) {
    method onSegmentComplete (line 1315) | private void onSegmentComplete(MediaPlayer mp) {
    method playNextSegment (line 1353) | private void playNextSegment(final List<String> paths, final Callback ...
    method seekTo (line 1364) | @ReactMethod
    method getPlaybackPosition (line 1392) | @ReactMethod
    method playFromPosition (line 1412) | @ReactMethod
    method deleteSegments (line 1492) | @ReactMethod
    method getSegmentPaths (line 1531) | @ReactMethod
    method clearSegments (line 1560) | @ReactMethod
    method openCamera (line 1576) | @ReactMethod
    method launchCameraIntent (line 1595) | private void launchCameraIntent(Activity currentActivity, Callback cal...
    method createImageFile (line 1618) | private File createImageFile() throws IOException {
    method openFileChooser (line 1632) | @ReactMethod
    method checkAndDownload (line 1655) | @ReactMethod
    method openFile (line 1672) | @ReactMethod
    method openFileWithOption (line 1681) | @ReactMethod
    method doesFileExist (line 1723) | @ReactMethod
    method createDirectory (line 1734) | private void createDirectory(String var0) {
    method makeEmptyFileWithTitle (line 1741) | private File makeEmptyFileWithTitle(Context context, String title) {
    method fileExists (line 1756) | private boolean fileExists(String fileName) {
    method downloadFile (line 1761) | private Long downloadFile(String fileName, String url){
    method getName (line 1790) | @NonNull

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/ImageManager.java
  class ImageManager (line 13) | public class ImageManager extends ReactContextBaseJavaModule {
    method ImageManager (line 16) | ImageManager(ReactApplicationContext context) {
    method openImage (line 20) | @ReactMethod
    method getName (line 35) | @NonNull

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/ProximityModule.java
  class ProximityModule (line 13) | @ReactModule(name = ProximityModule.NAME)
    method ProximityModule (line 19) | public ProximityModule(ReactApplicationContext reactContext) {
    method getName (line 29) | @Override
    method setEnabled (line 34) | @ReactMethod

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/ReactVideoView.java
  class ReactVideoView (line 45) | @SuppressLint("ViewConstructor")
    type Events (line 56) | public enum Events {
      method Events (line 74) | Events(final String name) {
      method toString (line 78) | @Override
    method ReactVideoView (line 147) | public ReactVideoView(ThemedReactContext themedReactContext) {
    method onTouchEvent (line 175) | @Override
    method onLayout (line 185) | @Override
    method initializeMediaPlayerIfNeeded (line 210) | private void initializeMediaPlayerIfNeeded() {
    method initializeMediaControllerIfNeeded (line 227) | private void initializeMediaControllerIfNeeded() {
    method cleanupMediaPlayerResources (line 233) | public void cleanupMediaPlayerResources() {
    method setSrc (line 253) | public void setSrc(final String uriString, final String type, final bo...
    method setSrc (line 257) | public void setSrc(final String uriString, final String type, final bo...
    method setResizeModeModifier (line 372) | public void setResizeModeModifier(final ScalableType resizeMode) {
    method setRepeatModifier (line 381) | public void setRepeatModifier(final boolean repeat) {
    method setPausedModifier (line 390) | public void setPausedModifier(final boolean paused) {
    method calulateRelativeVolume (line 417) | private float calulateRelativeVolume() {
    method setPreventsDisplaySleepDuringVideoPlaybackModifier (line 424) | public void setPreventsDisplaySleepDuringVideoPlaybackModifier(final b...
    method setMutedModifier (line 435) | public void setMutedModifier(final boolean muted) {
    method setVolumeModifier (line 456) | public void setVolumeModifier(final float volume) {
    method setStereoPan (line 461) | public void setStereoPan(final float stereoPan) {
    method setProgressUpdateInterval (line 466) | public void setProgressUpdateInterval(final float progressUpdateInterv...
    method setRateModifier (line 470) | public void setRateModifier(final float rate) {
    method setFullscreen (line 493) | public void setFullscreen(boolean isFullscreen) {
    method applyModifiers (line 526) | public void applyModifiers() {
    method setPlayInBackground (line 536) | public void setPlayInBackground(final boolean playInBackground) {
    method setControls (line 541) | public void setControls(boolean controls) {
    method onPrepared (line 545) | @Override
    method onError (line 592) | @Override
    method onInfo (line 604) | @Override
    method onBufferingUpdate (line 622) | @Override
    method onSeekComplete (line 628) | public void onSeekComplete(MediaPlayer mp) {
    method seekTo (line 636) | @Override
    method getBufferPercentage (line 647) | @Override
    method canPause (line 652) | @Override
    method canSeekBackward (line 657) | @Override
    method canSeekForward (line 662) | @Override
    method getAudioSessionId (line 667) | @Override
    method onCompletion (line 672) | @Override
    class TimedMetaDataAvailableListener (line 682) | @TargetApi(23) // 6.0
      method onTimedMetaDataAvailable (line 686) | public void onTimedMetaDataAvailable(MediaPlayer mp, TimedMetaData d...
    method onDetachedFromWindow (line 710) | @Override
    method onAttachedToWindow (line 717) | @Override
    method onHostPause (line 730) | @Override
    method onHostResume (line 742) | @Override
    method onHostDestroy (line 756) | @Override
    method toStringMap (line 767) | public static Map<String, String> toStringMap(@Nullable ReadableMap re...
    method selectTimedMetadataTrack (line 782) | private void selectTimedMetadataTrack(MediaPlayer mp) {

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/ReactVideoViewManager.java
  class ReactVideoViewManager (line 17) | public class ReactVideoViewManager extends SimpleViewManager<ReactVideoV...
    method getName (line 43) | @Override
    method createViewInstance (line 48) | @Override
    method onDropViewInstance (line 53) | @Override
    method getExportedCustomDirectEventTypeConstants (line 59) | @Override
    method getExportedViewConstants (line 69) | @Override
    method setSrc (line 80) | @ReactProp(name = PROP_SRC)
    method setPropPreventsDisplaySleepDuringVideoPlayback (line 108) | @ReactProp(name = PROP_PREVENTS_DISPLAY_SLEEP_DURING_VIDEO_PLAYBACK)
    method setResizeMode (line 113) | @ReactProp(name = PROP_RESIZE_MODE)
    method setRepeat (line 118) | @ReactProp(name = PROP_REPEAT, defaultBoolean = false)
    method setPaused (line 123) | @ReactProp(name = PROP_PAUSED, defaultBoolean = false)
    method setMuted (line 128) | @ReactProp(name = PROP_MUTED, defaultBoolean = false)
    method setVolume (line 133) | @ReactProp(name = PROP_VOLUME, defaultFloat = 1.0f)
    method setStereoPan (line 138) | @ReactProp(name = PROP_STEREO_PAN)
    method setProgressUpdateInterval (line 143) | @ReactProp(name = PROP_PROGRESS_UPDATE_INTERVAL, defaultFloat = 250.0f)
    method setSeek (line 148) | @ReactProp(name = PROP_SEEK)
    method setRate (line 153) | @ReactProp(name = PROP_RATE)
    method setFullscreen (line 158) | @ReactProp(name = PROP_FULLSCREEN, defaultBoolean = false)
    method setPlayInBackground (line 163) | @ReactProp(name = PROP_PLAY_IN_BACKGROUND, defaultBoolean = false)
    method setControls (line 168) | @ReactProp(name = PROP_CONTROLS, defaultBoolean = false)

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/SoundPlayer.java
  class SoundPlayer (line 22) | public class SoundPlayer extends ReactContextBaseJavaModule {
    method SoundPlayer (line 31) | SoundPlayer(ReactApplicationContext context) {
    method emitEvent (line 35) | private void emitEvent(String status, String forAudio) {
    method prepareMediaPlayer (line 42) | @ReactMethod
    method play (line 63) | @ReactMethod
    method resume (line 107) | @ReactMethod
    method playAt (line 114) | @ReactMethod
    method pause (line 125) | @ReactMethod
    method stop (line 139) | @ReactMethod
    method releaseMediaPlayer (line 147) | @ReactMethod
    method getPosition (line 154) | @ReactMethod
    method getName (line 165) | @NonNull

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/TimeZoneCodeManager.java
  class TimeZoneCodeManager (line 14) | public class TimeZoneCodeManager extends ReactContextBaseJavaModule {
    method TimeZoneCodeManager (line 17) | public TimeZoneCodeManager(ReactApplicationContext context) {
    method getCurrentTimeZone (line 21) | @ReactMethod
    method getName (line 36) | @NonNull

FILE: packages/ChatUiKit/android/src/main/java/com/reactnativecometchatuikit/WebViewManager.java
  class WebViewManager (line 12) | public class WebViewManager extends ReactContextBaseJavaModule {
    method WebViewManager (line 17) | public WebViewManager(ReactApplicationContext reactContext) {
    method getName (line 21) | @NonNull
    method openUrl (line 27) | @ReactMethod

FILE: packages/ChatUiKit/android/src/main/java/com/scalablevideoview/BuildConfig.java
  class BuildConfig (line 3) | public final class BuildConfig {
    method BuildConfig (line 8) | public BuildConfig() {

FILE: packages/ChatUiKit/android/src/main/java/com/scalablevideoview/PivotPoint.java
  type PivotPoint (line 3) | public enum PivotPoint {

FILE: packages/ChatUiKit/android/src/main/java/com/scalablevideoview/ScalableType.java
  type ScalableType (line 3) | public enum ScalableType {

FILE: packages/ChatUiKit/android/src/main/java/com/scalablevideoview/ScalableVideoView.java
  class ScalableVideoView (line 24) | public class ScalableVideoView extends TextureView implements TextureVie...
    method ScalableVideoView (line 30) | public ScalableVideoView(Context context) {
    method ScalableVideoView (line 34) | public ScalableVideoView(Context context, AttributeSet attrs) {
    method ScalableVideoView (line 38) | public ScalableVideoView(Context context, AttributeSet attrs, int defS...
    method onSurfaceTextureAvailable (line 55) | @Override
    method onSurfaceTextureSizeChanged (line 63) | @Override
    method onSurfaceTextureDestroyed (line 67) | @Override
    method onSurfaceTextureUpdated (line 72) | @Override
    method onDetachedFromWindow (line 76) | @Override
    method onVideoSizeChanged (line 89) | @Override
    method scaleVideoSize (line 94) | private void scaleVideoSize(int videoWidth, int videoHeight) {
    method initializeMediaPlayer (line 108) | private void initializeMediaPlayer() {
    method setRawData (line 118) | public void setRawData(@RawRes int id) throws IOException {
    method setAssetData (line 123) | public void setAssetData(@NonNull String assetName) throws IOException {
    method setDataSource (line 129) | private void setDataSource(@NonNull AssetFileDescriptor afd) throws IO...
    method setDataSource (line 134) | public void setDataSource(@NonNull String path) throws IOException {
    method setDataSource (line 139) | public void setDataSource(@NonNull Context context, @NonNull Uri uri,
    method setDataSource (line 145) | public void setDataSource(@NonNull Context context, @NonNull Uri uri) ...
    method setDataSource (line 150) | public void setDataSource(@NonNull FileDescriptor fd, long offset, lon...
    method setDataSource (line 156) | public void setDataSource(@NonNull FileDescriptor fd) throws IOExcepti...
    method setScalableType (line 161) | public void setScalableType(ScalableType scalableType) {
    method prepare (line 166) | public void prepare(@Nullable MediaPlayer.OnPreparedListener listener)
    method prepareAsync (line 172) | public void prepareAsync(@Nullable MediaPlayer.OnPreparedListener list...
    method prepare (line 178) | public void prepare() throws IOException, IllegalStateException {
    method prepareAsync (line 182) | public void prepareAsync() throws IllegalStateException {
    method setOnErrorListener (line 186) | public void setOnErrorListener(@Nullable MediaPlayer.OnErrorListener l...
    method setOnCompletionListener (line 190) | public void setOnCompletionListener(@Nullable MediaPlayer.OnCompletion...
    method setOnInfoListener (line 194) | public void setOnInfoListener(@Nullable MediaPlayer.OnInfoListener lis...
    method getCurrentPosition (line 198) | public int getCurrentPosition() {
    method getDuration (line 202) | public int getDuration() {
    method getVideoHeight (line 206) | public int getVideoHeight() {
    method getVideoWidth (line 210) | public int getVideoWidth() {
    method isLooping (line 214) | public boolean isLooping() {
    method isPlaying (line 218) | public boolean isPlaying() {
    method pause (line 222) | public void pause() {
    method seekTo (line 226) | public void seekTo(int msec) {
    method setLooping (line 230) | public void setLooping(boolean looping) {
    method setVolume (line 234) | public void setVolume(float leftVolume, float rightVolume) {
    method start (line 238) | public void start() {
    method stop (line 242) | public void stop() {
    method reset (line 246) | public void reset() {
    method release (line 250) | public void release() {

FILE: packages/ChatUiKit/android/src/main/java/com/scalablevideoview/ScaleManager.java
  class ScaleManager (line 5) | public class ScaleManager {
    method ScaleManager (line 10) | public ScaleManager(Size viewSize, Size videoSize) {
    method getScaleMatrix (line 15) | public Matrix getScaleMatrix(ScalableType scalableType) {
    method getMatrix (line 79) | private Matrix getMatrix(float sx, float sy, float px, float py) {
    method getMatrix (line 85) | private Matrix getMatrix(float sx, float sy, PivotPoint pivotPoint) {
    method getNoScale (line 110) | private Matrix getNoScale() {
    method getFitScale (line 116) | private Matrix getFitScale(PivotPoint pivotPoint) {
    method fitXY (line 125) | private Matrix fitXY() {
    method fitStart (line 129) | private Matrix fitStart() {
    method fitCenter (line 133) | private Matrix fitCenter() {
    method fitEnd (line 137) | private Matrix fitEnd() {
    method getOriginalScale (line 141) | private Matrix getOriginalScale(PivotPoint pivotPoint) {
    method getCropScale (line 147) | private Matrix getCropScale(PivotPoint pivotPoint) {
    method startInside (line 156) | private Matrix startInside() {
    method centerInside (line 167) | private Matrix centerInside() {
    method endInside (line 178) | private Matrix endInside() {

FILE: packages/ChatUiKit/android/src/main/java/com/scalablevideoview/Size.java
  class Size (line 3) | public class Size {
    method Size (line 8) | public Size(int width, int height) {
    method getWidth (line 13) | public int getWidth() {
    method getHeight (line 17) | public int getHeight() {

FILE: packages/ChatUiKit/android/src/main/java/com/zipfile/APEZProvider.java
  class APEZProvider (line 54) | public abstract class APEZProvider extends ContentProvider {
    method getAuthority (line 102) | public abstract String getAuthority();
    method delete (line 104) | @Override
    method getType (line 110) | @Override
    method insert (line 115) | @Override
    method initIfNecessary (line 123) | private boolean initIfNecessary() {
    method onCreate (line 169) | @Override
    method openAssetFile (line 174) | @Override
    method applyBatch (line 185) | @Override
    method openFile (line 193) | @Override
    method query (line 204) | @Override
    method update (line 280) | @Override

FILE: packages/ChatUiKit/android/src/main/java/com/zipfile/APKExpansionSupport.java
  class APKExpansionSupport (line 28) | public class APKExpansionSupport {
    method getAPKExpansionFiles (line 32) | static String[] getAPKExpansionFiles(Context ctx, int mainVersion, int...
    method getResourceZipFile (line 65) | static public ZipResourceFile getResourceZipFile(String[] expansionFil...
    method getAPKExpansionZipFile (line 77) | static public ZipResourceFile getAPKExpansionZipFile(Context ctx, int ...

FILE: packages/ChatUiKit/android/src/main/java/com/zipfile/ZipResourceFile.java
  class ZipResourceFile (line 39) | public class ZipResourceFile {
    method swapEndian (line 48) | static private int swapEndian(int i)
    method swapEndian (line 55) | static private int swapEndian(short i)
    class ZipEntryRO (line 100) | static public final class ZipEntryRO {
      method ZipEntryRO (line 101) | public ZipEntryRO(final String zipFileName, final File file, final S...
      method setOffsetFromFile (line 121) | public void setOffsetFromFile(RandomAccessFile f, ByteBuffer buf) th...
      method getOffset (line 146) | public long getOffset() {
      method isUncompressed (line 155) | public boolean isUncompressed() {
      method getAssetFileDescriptor (line 159) | public AssetFileDescriptor getAssetFileDescriptor() {
      method getZipFileName (line 173) | public String getZipFileName() {
      method getZipFile (line 177) | public File getZipFile() {
    method ZipResourceFile (line 188) | public ZipResourceFile(String zipFileName) throws IOException {
    method getEntriesAt (line 192) | ZipEntryRO[] getEntriesAt(String path) {
    method getAllEntries (line 209) | public ZipEntryRO[] getAllEntries() {
    method getAssetFileDescriptor (line 225) | public AssetFileDescriptor getAssetFileDescriptor(String assetPath) {
    method getInputStream (line 242) | public InputStream getInputStream(String assetPath) throws IOException {
    method read4LE (line 264) | static private int read4LE(RandomAccessFile f) throws EOFException, IO...
    method addPatchFile (line 272) | void addPatchFile(String zipFileName) throws IOException

FILE: packages/ChatUiKit/ios/Video/CCRCTVideo.h
  type RCTVideoErrorFromJSPart (line 47) | typedef NS_ENUM(NSInteger, RCTVideoError) {

FILE: packages/ChatUiKit/packager.js
  function getFiles (line 5) | function getFiles(dir, files_) {
  function copyFiles (line 21) | function copyFiles() {

FILE: packages/ChatUiKit/src/CometChatAIAssistantChatHistory/CometChatAIAssistantChatHistory.tsx
  type CometChatAIAssistantChatHistoryProps (line 23) | interface CometChatAIAssistantChatHistoryProps {
  type States (line 64) | enum States {
  type GroupedMessage (line 71) | interface GroupedMessage {

FILE: packages/ChatUiKit/src/CometChatAIAssistantChatHistory/Skeleton.tsx
  type SkeletonProps (line 15) | interface SkeletonProps {
  type SkeletonStyle (line 21) | type SkeletonStyle = {
  function getStyleValue (line 34) | function getStyleValue<K extends keyof SkeletonStyle>(
  constant PADDING (line 53) | const PADDING = 20;
  constant SECTION_HEADER_HEIGHT (line 54) | const SECTION_HEADER_HEIGHT = 16;
  constant SECTION_SPACING (line 55) | const SECTION_SPACING = 25;
  constant MESSAGE_HEIGHT (line 56) | const MESSAGE_HEIGHT = 18;
  constant MESSAGE_SPACING (line 57) | const MESSAGE_SPACING = 32;
  constant SECTIONS_COUNT (line 58) | const SECTIONS_COUNT = 3;
  constant MESSAGES_PER_SECTION (line 59) | const MESSAGES_PER_SECTION = 4;
  constant TOTAL_HEIGHT (line 62) | const TOTAL_HEIGHT =

FILE: packages/ChatUiKit/src/CometChatAIAssistantChatHistory/style.ts
  type ChatHistoryStyle (line 6) | type ChatHistoryStyle = {

FILE: packages/ChatUiKit/src/CometChatCompactMessageComposer/CometChatCompactMessageComposer.tsx
  type LinkTapEventData (line 38) | interface LinkTapEventData {
  constant MIC_ANIM_DURATION (line 120) | const MIC_ANIM_DURATION = 150;
  constant MIC_SLIDE_DISTANCE (line 121) | const MIC_SLIDE_DISTANCE = 40;
  type ToolbarSeparator (line 151) | type ToolbarSeparator = { type: 'separator' };
  type ToolbarButton (line 152) | type ToolbarButton = {
  type ToolbarItem (line 167) | type ToolbarItem = ToolbarSeparator | ToolbarButton;
  type EmojiButtonProps (line 290) | interface EmojiButtonProps {
  type SingleLineMessageComposerStyleInterface (line 487) | type SingleLineMessageComposerStyleInterface = DeepPartial<CometChatThem...
  type CometChatCompactMessageComposerInterface (line 494) | interface CometChatCompactMessageComposerInterface {
  method ccSuggestionData (line 1865) | ccSuggestionData(item: { id: string | number; data: Array<SuggestionItem...

FILE: packages/ChatUiKit/src/CometChatCompactMessageComposer/SingleLineTextComposerConfiguration.tsx
  type SingleLineMessageComposerConfigurationInterface (line 232) | interface SingleLineMessageComposerConfigurationInterface {
  class SingleLineMessageComposerConfiguration (line 393) | class SingleLineMessageComposerConfiguration implements SingleLineMessag...
    method constructor (line 547) | constructor(config: Partial<SingleLineMessageComposerConfigurationInte...
    method withDefaults (line 554) | static withDefaults(): SingleLineMessageComposerConfiguration {

FILE: packages/ChatUiKit/src/CometChatCompactMessageComposer/heightUtils.ts
  constant DEFAULT_MIN_HEIGHT (line 13) | const DEFAULT_MIN_HEIGHT = 24;
  constant DEFAULT_MAX_HEIGHT (line 14) | const DEFAULT_MAX_HEIGHT = 200;
  constant DEFAULT_LINE_HEIGHT (line 15) | const DEFAULT_LINE_HEIGHT = 24;
  constant DEFAULT_MAX_LINES (line 16) | const DEFAULT_MAX_LINES = 5;
  constant DEFAULT_PADDING_VERTICAL (line 17) | const DEFAULT_PADDING_VERTICAL = 12;
  function calculateInputHeight (line 40) | function calculateInputHeight(
  function calculateMaxHeightFromLines (line 70) | function calculateMaxHeightFromLines(
  function getIconAlignment (line 100) | function getIconAlignment(
  type MaxHeightConfig (line 114) | interface MaxHeightConfig {
  function resolveEffectiveMaxHeight (line 155) | function resolveEffectiveMaxHeight(config: MaxHeightConfig): number {
  function shouldUpdateHeight (line 199) | function shouldUpdateHeight(newHeight: number, currentHeight: number): b...

FILE: packages/ChatUiKit/src/CometChatCompactMessageComposer/resources/index.ts
  constant ICONS (line 3) | const ICONS = {

FILE: packages/ChatUiKit/src/CometChatCompactMessageComposer/styles.ts
  constant MIN_INPUT_HEIGHT (line 19) | const MIN_INPUT_HEIGHT = 24;
  constant DEFAULT_LINE_HEIGHT (line 20) | const DEFAULT_LINE_HEIGHT = 24;
  type SingleLineComposerStyle (line 202) | type SingleLineComposerStyle = {

FILE: packages/ChatUiKit/src/CometChatConversations/CometChatConversations.tsx
  type ConversationInterface (line 77) | interface ConversationInterface {
  function getFormattedText (line 961) | function getFormattedText(message: CometChat.BaseMessage, subtitle: stri...

FILE: packages/ChatUiKit/src/CometChatConversations/Skeleton.tsx
  constant SKELETON_ROW_COUNT (line 25) | const SKELETON_ROW_COUNT = 20;
  type SkeletonStyle (line 27) | type SkeletonStyle = CometChatTheme["conversationStyles"]["skeletonStyle"];
  type SkeletonProps (line 29) | interface SkeletonProps {

FILE: packages/ChatUiKit/src/CometChatConversations/style.ts
  type ConversationStyle (line 42) | type ConversationStyle = Omit<

FILE: packages/ChatUiKit/src/CometChatGroupMembers/CometChatGroupMembers.tsx
  type CometChatGroupMembersInterface (line 45) | interface CometChatGroupMembersInterface

FILE: packages/ChatUiKit/src/CometChatGroupMembers/style.ts
  type GroupMemberStyle (line 8) | type GroupMemberStyle = DeepPartial<CometChatListStylesInterface> & {

FILE: packages/ChatUiKit/src/CometChatGroups/CometChatGroups.tsx
  type CometChatGroupsInterface (line 30) | interface CometChatGroupsInterface {

FILE: packages/ChatUiKit/src/CometChatGroups/GroupsStyle.ts
  type GroupStyle (line 7) | type GroupStyle = CometChatListStylesInterface & {

FILE: packages/ChatUiKit/src/CometChatGroups/Skeleton.tsx
  type SkeletonProps (line 32) | interface SkeletonProps {
  type SkeletonStyle (line 45) | type SkeletonStyle = CometChatTheme["groupStyles"]["skeletonStyle"];
  function resolveStyleValue (line 55) | function resolveStyleValue<K extends keyof SkeletonStyle>(
  constant PADDING (line 69) | const PADDING = 20;
  constant AVATAR_RADIUS (line 70) | const AVATAR_RADIUS = 25;
  constant LIST_ITEM_HEIGHT (line 71) | const LIST_ITEM_HEIGHT = 25;
  constant LIST_ITEM_SUBTITLE_HEIGHT (line 72) | const LIST_ITEM_SUBTITLE_HEIGHT = 20;
  constant LIST_ITEM_SUBTITLE_SPACING (line 73) | const LIST_ITEM_SUBTITLE_SPACING = 10;
  constant LIST_ITEM_SPACING (line 74) | const LIST_ITEM_SPACING = 30;
  constant LIST_ITEM_COUNT (line 75) | const LIST_ITEM_COUNT = 14;
  constant TOTAL_HEIGHT (line 78) | const TOTAL_HEIGHT =

FILE: packages/ChatUiKit/src/CometChatMessageComposer/CometChatMessageComposer.tsx
  type MentionOverlap (line 68) | type MentionOverlap = {
  type Enumerate (line 152) | type Enumerate<N extends number, Acc extends number[] = []> = Acc["lengt...
  type IntRange (line 156) | type IntRange<F extends number, T extends number> = Exclude<Enumerate<T>...
  type CometChatMessageComposerInterface (line 161) | interface CometChatMessageComposerInterface {
  method ccSuggestionData (line 1625) | ccSuggestionData(item: { id: string | number; data: Array<SuggestionItem...
  function shouldOpenList (line 1677) | function shouldOpenList(
  function escapeRegExp (line 2121) | function escapeRegExp(string: string) {
  function extractTextFromCursor (line 2125) | function extractTextFromCursor(inputText: string, cursorPosition: number) {
  function substringUpToNthSpace (line 2143) | function substringUpToNthSpace(str: string, n: number) {

FILE: packages/ChatUiKit/src/CometChatMessageComposer/resources/index.ts
  constant ICONS (line 12) | const ICONS = {

FILE: packages/ChatUiKit/src/CometChatMessageComposer/styles.tsx
  type MessageComposerStyle (line 59) | type MessageComposerStyle = {

FILE: packages/ChatUiKit/src/CometChatMessageHeader/CometChatMessageHeader.tsx
  type CometChatMessageHeaderInterface (line 21) | type CometChatMessageHeaderInterface = {
  type Translations (line 128) | interface Translations {

FILE: packages/ChatUiKit/src/CometChatMessageHeader/styles.ts
  type MessageHeaderStyle (line 17) | type MessageHeaderStyle = {

FILE: packages/ChatUiKit/src/CometChatMessageInformation/CometChatMessageInformation.tsx
  type Recipient (line 26) | type Recipient = {
  type CometChatMessageInformationInterface (line 33) | interface CometChatMessageInformationInterface {

FILE: packages/ChatUiKit/src/CometChatMessageList/CometChatMessageList.tsx
  constant SEPARATOR_HEIGHT (line 109) | const SEPARATOR_HEIGHT = 40;
  constant AVERAGE_ITEM_LENGTH (line 110) | const AVERAGE_ITEM_LENGTH = 120;
  constant SMALL_LIST_THRESHOLD (line 111) | const SMALL_LIST_THRESHOLD = 30;
  function getConversationIfExists (line 134) | async function getConversationIfExists(
  function batchStateUpdates (line 155) | function batchStateUpdates(callback: () => void): void {
  type CometChatMessageListProps (line 174) | interface CometChatMessageListProps {
  type CometChatMessageListActionsInterface (line 512) | interface CometChatMessageListActionsInterface {
  function checkMessageInSameConversation (line 1783) | function checkMessageInSameConversation(message: CometChat.BaseMessage |...
  function messageToSameConversation (line 1796) | function messageToSameConversation(message: CometChat.BaseMessage): bool...
  function checkSameConversation (line 1830) | function checkSameConversation(message: CometChat.BaseMessage): boolean {
  function isNearBottom (line 1857) | function isNearBottom() {
  function isReactionOfThisList (line 2908) | function isReactionOfThisList(receipt: CometChat.ReactionEvent) {

FILE: packages/ChatUiKit/src/CometChatMessageList/components/MessageListItem.tsx
  constant SEPARATOR_HEIGHT (line 8) | const SEPARATOR_HEIGHT = 40;
  type MessageListItemProps (line 10) | interface MessageListItemProps {

FILE: packages/ChatUiKit/src/CometChatMessageList/components/MessageModals.tsx
  type MessageModalsProps (line 7) | interface MessageModalsProps {

FILE: packages/ChatUiKit/src/CometChatMessageList/components/MessageOptionsSheet.tsx
  type MessageOptionsSheetProps (line 12) | interface MessageOptionsSheetProps {

FILE: packages/ChatUiKit/src/CometChatMessageList/components/ReactionModals.tsx
  type ReactionModalsProps (line 8) | interface ReactionModalsProps {

FILE: packages/ChatUiKit/src/CometChatRichTextEditor/RichTextEditorViewNativeComponent.ts
  type Double (line 4) | type Double = number;
  type Int32 (line 5) | type Int32 = number;
  type DirectEventHandler (line 6) | type DirectEventHandler<T> = (event: { nativeEvent: T }) => void;
  type SelectionProp (line 9) | type SelectionProp = Readonly<{
  type TextStyleProp (line 14) | type TextStyleProp = Readonly<{
  type StyleRange (line 20) | type StyleRange = Readonly<{
  type Block (line 28) | type Block = Readonly<{
  type ContentChangeEventData (line 37) | type ContentChangeEventData = Readonly<{
  type SelectionChangeEventData (line 42) | type SelectionChangeEventData = Readonly<{
  type SizeChangeEventData (line 47) | type SizeChangeEventData = Readonly<{
  type ActiveStylesEventData (line 51) | type ActiveStylesEventData = Readonly<{
  type LinkTapEventData (line 63) | type LinkTapEventData = Readonly<{
  type NativeProps (line 70) | interface NativeProps extends ViewProps {

FILE: packages/ChatUiKit/src/CometChatRichTextEditor/index.tsx
  constant COMMANDS (line 14) | const COMMANDS = {
  type SizeChangeEvent (line 61) | interface SizeChangeEvent {
  type ActiveStylesState (line 67) | interface ActiveStylesState {
  type ActiveStylesChangeEvent (line 79) | interface ActiveStylesChangeEvent {
  type LinkTapEventData (line 93) | interface LinkTapEventData {
  type LinkTapEvent (line 100) | interface LinkTapEvent {
  type RichTextEditorPropsExtended (line 104) | interface RichTextEditorPropsExtended extends RichTextEditorProps {

FILE: packages/ChatUiKit/src/CometChatRichTextEditor/types.ts
  type Selection (line 4) | interface Selection {
  type TextStyle (line 9) | interface TextStyle {
  type StyleRange (line 15) | interface StyleRange {
  type BlockType (line 23) | type BlockType = 'paragraph' | 'bullet' | 'numbered' | 'heading' | 'quot...
  type TextAlignment (line 24) | type TextAlignment = 'left' | 'center' | 'right';
  type EditorVariant (line 25) | type EditorVariant = 'outlined' | 'flat' | 'plain';
  type Block (line 27) | interface Block {
  type ContentChangeEvent (line 36) | interface ContentChangeEvent {
  type DeltaType (line 44) | type DeltaType = 'insert' | 'delete' | 'format' | 'replace';
  type ContentDelta (line 46) | interface ContentDelta {
  type SelectionChangeEvent (line 55) | interface SelectionChangeEvent {
  type ToolbarOption (line 62) | type ToolbarOption =
  constant DEFAULT_TOOLBAR_OPTIONS (line 84) | const DEFAULT_TOOLBAR_OPTIONS: ToolbarOption[] = [
  type RichTextEditorProps (line 107) | interface RichTextEditorProps {
  type RichTextEditorRef (line 129) | interface RichTextEditorRef {

FILE: packages/ChatUiKit/src/CometChatSearch/CometChatSearch.tsx
  function useCometChatErrorHandler (line 26) | function useCometChatErrorHandler(onError?: (error: CometChat.CometChatE...
  function hasValidConversationSearchCriteria (line 40) | function hasValidConversationSearchCriteria(searchKeyword: string, filte...
  function hasValidMessageSearchCriteria (line 58) | function hasValidMessageSearchCriteria(searchKeyword: string, filters: C...
  type SearchState (line 78) | interface SearchState {
  type SearchAction (line 86) | type SearchAction =
  function searchStateReducer (line 102) | function searchStateReducer(state: SearchState, action: SearchAction): S...
  type CometChatSearchProps (line 198) | interface CometChatSearchProps {
  type LinkPreviewImageProps (line 340) | interface LinkPreviewImageProps {
  type VideoThumbnailProps (line 408) | interface VideoThumbnailProps {
  type ConversationItemProps (line 470) | interface ConversationItemProps {
  type ListItem (line 1937) | type ListItem =

FILE: packages/ChatUiKit/src/CometChatSearch/SearchConstants.ts
  type CometChatSearchScope (line 8) | enum CometChatSearchScope {
  type CometChatSearchFilter (line 17) | enum CometChatSearchFilter {
  type States (line 32) | enum States {
  type CometChatSearchFilterItem (line 42) | interface CometChatSearchFilterItem {

FILE: packages/ChatUiKit/src/CometChatSearch/Skeleton.tsx
  constant SKELETON_ROW_COUNT (line 25) | const SKELETON_ROW_COUNT = 10;
  type SkeletonStyle (line 27) | type SkeletonStyle = CometChatTheme["conversationStyles"]["skeletonStyle"];
  type SkeletonProps (line 29) | interface SkeletonProps {

FILE: packages/ChatUiKit/src/CometChatSearch/style.ts
  type SearchStyle (line 17) | type SearchStyle = {

FILE: packages/ChatUiKit/src/CometChatThreadHeader/CometChatThreadHeader.tsx
  type CometChatThreadHeaderInterface (line 36) | interface CometChatThreadHeaderInterface {

FILE: packages/ChatUiKit/src/CometChatThreadHeader/resources/index.ts
  constant ICONS (line 7) | const ICONS = {

FILE: packages/ChatUiKit/src/CometChatUsers/CometChatUsers.tsx
  type MenuItemInterface (line 26) | interface MenuItemInterface {
  type CometChatUsersInterface (line 39) | interface CometChatUsersInterface
  type CometChatUsersActionsInterface (line 220) | interface CometChatUsersActionsInterface extends CometChatListActionsInt...

FILE: packages/ChatUiKit/src/CometChatUsers/Skeleton.tsx
  type SkeletonProps (line 25) | interface SkeletonProps {
  type SkeletonStyle (line 31) | type SkeletonStyle = CometChatTheme["userStyles"]["skeletonStyle"];
  function getStyleValue (line 37) | function getStyleValue<K extends keyof SkeletonStyle>(
  constant PADDING (line 53) | const PADDING = 20;
  constant AVATAR_RADIUS (line 54) | const AVATAR_RADIUS = 25;
  constant LIST_ITEM_HEIGHT (line 55) | const LIST_ITEM_HEIGHT = 25;
  constant LIST_ITEM_SPACING (line 56) | const LIST_ITEM_SPACING = 54;
  constant LIST_ITEM_COUNT (line 57) | const LIST_ITEM_COUNT = 14;
  constant TOTAL_HEIGHT (line 60) | const TOTAL_HEIGHT = PADDING + LIST_ITEM_COUNT * (LIST_ITEM_HEIGHT + LIS...

FILE: packages/ChatUiKit/src/CometChatUsers/style.ts
  type UserStyle (line 7) | type UserStyle = CometChatListStylesInterface & {

FILE: packages/ChatUiKit/src/calls/CallUtils.ts
  class CallUtils (line 14) | class CallUtils {
    method isInitiator (line 22) | private static isInitiator(initiator: CometChat.User, loggedInUser: Co...
    method getCallStatus (line 33) | static getCallStatus(
    method isMissedCall (line 119) | static isMissedCall(call: CometChat.Call, loggedInUser: CometChat.User...
    method getCallStatusForCallLogs (line 138) | static getCallStatusForCallLogs(
    method convertMinutesToHoursMinutesSeconds (line 159) | static convertMinutesToHoursMinutesSeconds(minutes: number): string {
    method convertSecondsToHoursMinutesSeconds (line 188) | static convertSecondsToHoursMinutesSeconds(seconds: number): string {

FILE: packages/ChatUiKit/src/calls/CallingConfiguration.ts
  class CallingConfiguration (line 5) | class CallingConfiguration {
    method constructor (line 13) | constructor(params: {

FILE: packages/ChatUiKit/src/calls/CallingExtension.tsx
  class CallingExtension (line 10) | class CallingExtension extends ExtensionsDataSource {
    method CallingExtension (line 13) | CallingExtension({ configuration }: { configuration?: CallingConfigura...
    method constructor (line 17) | constructor(configuration?: CallingConfiguration ) {
    method enable (line 22) | enable() {
    method addExtension (line 26) | override addExtension(): void {
    method getExtensionId (line 48) | override getExtensionId(): string {

FILE: packages/ChatUiKit/src/calls/CallingExtensionDecorator.tsx
  class CallingExtensionDecorator (line 40) | class CallingExtensionDecorator extends DataSourceDecorator {
    method constructor (line 57) | constructor(props: { dataSource: DataSource; configuration?: CallingCo...
    method getId (line 76) | getId(): string {
    method isDeletedMessage (line 86) | isDeletedMessage(message: CometChat.BaseMessage): boolean {
    method getAllMessageTypes (line 95) | getAllMessageTypes() {
    method getAllMessageCategories (line 108) | getAllMessageCategories() {
    method startDirectCall (line 282) | async startDirectCall(
    method getAuxiliaryHeaderAppbarOptions (line 360) | getAuxiliaryHeaderAppbarOptions(
    method getAllMessageTemplates (line 416) | getAllMessageTemplates(
    method getLastConversationMessage (line 436) | getLastConversationMessage(conversation: CometChat.Conversation, theme...

FILE: packages/ChatUiKit/src/calls/CometChatCallBubble/CometChatCallBubble.tsx
  type CometChatMeetCallBubbleInterface (line 15) | interface CometChatMeetCallBubbleInterface {
  type CometChatUserCallBubbleInterface (line 64) | interface CometChatUserCallBubbleInterface {

FILE: packages/ChatUiKit/src/calls/CometChatCallBubble/styles.ts
  type GroupCallBubbleStyles (line 6) | type GroupCallBubbleStyles = {
  type CallActionBubbleStyles (line 107) | type CallActionBubbleStyles = {

FILE: packages/ChatUiKit/src/calls/CometChatCallButtons/CometChatCallButtonConfiguration.ts
  type CometChatCallButtonConfigurationInterface (line 6) | interface CometChatCallButtonConfigurationInterface {
  class CometChatCallButtonConfiguration (line 15) | class CometChatCallButtonConfiguration implements CometChatCallButtonCon...
    method constructor (line 22) | constructor({ callSettingsBuilder }: CometChatCallButtonConfigurationI...

FILE: packages/ChatUiKit/src/calls/CometChatCallButtons/CometChatCallButtons.tsx
  type CometChatCallButtonsInterface (line 37) | interface CometChatCallButtonsInterface {

FILE: packages/ChatUiKit/src/calls/CometChatCallButtons/style.ts
  type CallButtonStyle (line 5) | type CallButtonStyle = {

FILE: packages/ChatUiKit/src/calls/CometChatCallLogs/CometChatCallLogs.tsx
  type CometChatCallLogsConfigurationInterface (line 41) | interface CometChatCallLogsConfigurationInterface {
  function setRequestBuilder (line 211) | function setRequestBuilder() {

FILE: packages/ChatUiKit/src/calls/CometChatCallLogs/Skeleton.tsx
  type SkeletonStyle (line 41) | type SkeletonStyle = CometChatTheme["callLogsStyles"]["skeletonStyle"];
  type SkeletonProps (line 43) | interface SkeletonProps {

FILE: packages/ChatUiKit/src/calls/CometChatCallLogs/style.ts
  type CallLogsStyle (line 44) | type CallLogsStyle = {
  type CallLogsItemStyle (line 154) | type CallLogsItemStyle = {

FILE: packages/ChatUiKit/src/calls/CometChatIncomingCall/CometChatIncomingCall.tsx
  type CometChatIncomingCallInterface (line 31) | interface CometChatIncomingCallInterface {
  function isDefaultCall (line 152) | function isDefaultCall(ccCall: CometChat.BaseMessage): Boolean {

FILE: packages/ChatUiKit/src/calls/CometChatIncomingCall/style.ts
  type IncomingCallStyle (line 4) | type IncomingCallStyle = {

FILE: packages/ChatUiKit/src/calls/CometChatOngoingCall/CometChatOngoingCall.tsx
  type CometChatOngoingCallInterface (line 17) | interface CometChatOngoingCallInterface {

FILE: packages/ChatUiKit/src/calls/CometChatOutgoingCall/CometChatOutgoingCall.tsx
  type CometChatOutgoingCallInterface (line 30) | interface CometChatOutgoingCallInterface {
  function checkIfDefaultCall (line 124) | function checkIfDefaultCall(call: CometChat.BaseMessage): boolean {

FILE: packages/ChatUiKit/src/calls/CometChatOutgoingCall/OutgoingCallConfiguration.ts
  class OutgoingCallConfiguration (line 8) | class OutgoingCallConfiguration {
    method constructor (line 19) | constructor(params: {

FILE: packages/ChatUiKit/src/calls/CometChatOutgoingCall/styles.ts
  type OutgoingCallStyle (line 4) | type OutgoingCallStyle = {

FILE: packages/ChatUiKit/src/extensions/CollaborativeBubble/CometChatCollaborativeBubble.tsx
  type CollaborativeBubbleProps (line 7) | interface CollaborativeBubbleProps {

FILE: packages/ChatUiKit/src/extensions/CollaborativeBubble/resources/index.ts
  constant WHITEBOARDICON (line 3) | const WHITEBOARDICON = { WhiteBoard };

FILE: packages/ChatUiKit/src/extensions/CollaborativeDocument/CollaborativeDocumentExtension.tsx
  class CollaborativeDocumentExtension (line 5) | class CollaborativeDocumentExtension extends ExtensionsDataSource {
    method constructor (line 6) | constructor() {
    method addExtension (line 15) | override addExtension(): void {
    method getExtensionId (line 21) | override getExtensionId(): string {

FILE: packages/ChatUiKit/src/extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.tsx
  class CollaborativeDocumentExtensionDecorator (line 32) | class CollaborativeDocumentExtensionDecorator extends DataSourceDecorator {
    method constructor (line 35) | constructor(dataSource: DataSource) {
    method isDeletedMessage (line 39) | isDeletedMessage(message: CometChat.BaseMessage): boolean {
    method getId (line 43) | getId(): string {
    method getLastConversationMessage (line 47) | getLastConversationMessage(
    method getAllMessageCategories (line 70) | getAllMessageCategories(): string[] {
    method getAllMessageTypes (line 78) | getAllMessageTypes(): string[] {
    method getAttachmentOptions (line 84) | getAttachmentOptions(
    method shareCollaborativedocument (line 137) | shareCollaborativedocument(
    method getAllMessageTemplates (line 193) | getAllMessageTemplates(
    method getCollaborativeBubble (line 243) | getCollaborativeBubble(

FILE: packages/ChatUiKit/src/extensions/CollaborativeDocument/resources/index.ts
  constant DOCUMENTICON (line 4) | const DOCUMENTICON = CollaborativeDocument;
  constant DOCUMENTICON2X (line 5) | const DOCUMENTICON2X = CollaborativeDocument2X;

FILE: packages/ChatUiKit/src/extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.tsx
  class CollaborativeWhiteboardExtension (line 5) | class CollaborativeWhiteboardExtension extends ExtensionsDataSource {
    method constructor (line 6) | constructor() {
    method addExtension (line 16) | override addExtension(): void {
    method getExtensionId (line 25) | override getExtensionId(): string {

FILE: packages/ChatUiKit/src/extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.tsx
  class CollaborativeWhiteboardExtensionDecorator (line 36) | class CollaborativeWhiteboardExtensionDecorator extends DataSourceDecora...
    method constructor (line 46) | constructor(dataSource: DataSource) {
    method isDeletedMessage (line 62) | isDeletedMessage(message: CometChat.BaseMessage): boolean {
    method getId (line 71) | getId(): string {
    method getLastConversationMessage (line 82) | getLastConversationMessage(
    method getAllMessageCategories (line 111) | getAllMessageCategories(): string[] {
    method getAllMessageTypes (line 124) | getAllMessageTypes(): string[] {
    method getAttachmentOptions (line 139) | getAttachmentOptions(
    method shareCollaborativeWhiteboard (line 201) | shareCollaborativeWhiteboard(
    method getAllMessageTemplates (line 262) | getAllMessageTemplates(
    method getCollaborativeBubble (line 320) | getCollaborativeBubble(

FILE: packages/ChatUiKit/src/extensions/CollaborativeWhiteboard/resources/index.ts
  constant WHITEBOARDICON (line 4) | const WHITEBOARDICON = WhiteBoard;
  constant COLLABORATIVEWHITEBOARDICON (line 5) | const COLLABORATIVEWHITEBOARDICON = CollaborativeWhiteboard;

FILE: packages/ChatUiKit/src/extensions/LinkPreview/LinkPreviewBubble.tsx
  type LinkPreviewBubbleInterface (line 20) | interface LinkPreviewBubbleInterface {

FILE: packages/ChatUiKit/src/extensions/LinkPreview/LinkPreviewExtension.tsx
  class LinkPreviewExtension (line 5) | class LinkPreviewExtension extends ExtensionsDataSource {
    method constructor (line 7) | constructor() {
    method addExtension (line 12) | override addExtension(): void {
    method getExtensionId (line 19) | override getExtensionId(): string {

FILE: packages/ChatUiKit/src/extensions/LinkPreview/LinkPreviewExtensionDecorator.tsx
  class LinkPreviewExtensionDecorator (line 15) | class LinkPreviewExtensionDecorator extends DataSourceDecorator {
    method constructor (line 21) | constructor(dataSource: DataSource) {
    method isDeletedMessage (line 31) | isDeletedMessage(message: CometChat.BaseMessage): boolean {
    method getId (line 40) | getId(): string {
    method getTextMessageContentView (line 55) | getTextMessageContentView(

FILE: packages/ChatUiKit/src/extensions/MessageTranslation/MessageTranslationBubble.tsx
  type MessageTranslationBubbleProps (line 15) | interface MessageTranslationBubbleProps {

FILE: packages/ChatUiKit/src/extensions/MessageTranslation/MessageTranslationDecorator.tsx
  class MessageTranslationExtensionDecorator (line 35) | class MessageTranslationExtensionDecorator extends DataSourceDecorator {
    method constructor (line 43) | constructor(dataSource: DataSource) {
    method getId (line 52) | getId(): string {
    method getTextMessageOptions (line 66) | getTextMessageOptions(
    method getTranslateOption (line 95) | getTranslateOption(
    method getTextMessageBubble (line 272) | getTextMessageBubble(

FILE: packages/ChatUiKit/src/extensions/MessageTranslation/MessageTranslationExtension.tsx
  class MessageTranslationExtension (line 6) | class MessageTranslationExtension extends ExtensionsDataSource {
    method constructor (line 7) | constructor() {
    method addExtension (line 17) | override addExtension(): void {
    method getExtensionId (line 26) | override getExtensionId(): string {

FILE: packages/ChatUiKit/src/extensions/MessageTranslation/resources/index.ts
  constant ICONS (line 3) | const ICONS = {

FILE: packages/ChatUiKit/src/extensions/Polls/Header.tsx
  type HeaderInterface (line 15) | interface HeaderInterface {

FILE: packages/ChatUiKit/src/extensions/Polls/Polls.tsx
  type CometChatCreatePollInterface (line 30) | interface CometChatCreatePollInterface {
  function validate (line 162) | function validate() {
  function polls (line 184) | function polls() {
  function ErrorView (line 228) | function ErrorView() {
  function handleQuestionChange (line 258) | function handleQuestionChange(text: string) {
  function handleAnswerTextChange (line 271) | function handleAnswerTextChange(text: string, index: number) {
  function handleAddAnswerRow (line 303) | function handleAddAnswerRow() {
  function AddAnswer (line 359) | function AddAnswer() {

FILE: packages/ChatUiKit/src/extensions/Polls/PollsBubble.tsx
  type PollsBubbleInterface (line 27) | interface PollsBubbleInterface {

FILE: packages/ChatUiKit/src/extensions/Polls/PollsConfigurations.ts
  type PollsConfigurationInterface (line 1) | interface PollsConfigurationInterface {

FILE: packages/ChatUiKit/src/extensions/Polls/PollsDecorator.tsx
  class PollsExtensionDecorator (line 35) | class PollsExtensionDecorator extends DataSourceDecorator {
    method constructor (line 44) | constructor(dataSource: DataSource, pollsConfiguration?: PollsConfigur...
    method isDeletedMessage (line 57) | isDeletedMessage(message: CometChat.BaseMessage): boolean {
    method getId (line 67) | getId(): string {
    method getLastConversationMessage (line 79) | getLastConversationMessage(
    method getAllMessageCategories (line 108) | getAllMessageCategories(): string[] {
    method getAllMessageTypes (line 122) | getAllMessageTypes(): string[] {
    method getAttachmentOptions (line 138) | getAttachmentOptions(
    method getAllMessageTemplates (line 185) | getAllMessageTemplates(
    method getPollBubble (line 239) | getPollBubble(

FILE: packages/ChatUiKit/src/extensions/Polls/PollsExtension.tsx
  class PollsExtension (line 6) | class PollsExtension extends ExtensionsDataSource {
    method constructor (line 9) | constructor(PollsConfigurationConfiguration?: PollsConfigurationInterf...
    method addExtension (line 22) | override addExtension(): void {
    method getExtensionId (line 29) | override getExtensionId(): string {

FILE: packages/ChatUiKit/src/extensions/Polls/resources/index.ts
  constant ICONS (line 7) | const ICONS = {

FILE: packages/ChatUiKit/src/extensions/Stickers/CometChatStickerKeyboard/CometChatStickerKeyboard.tsx
  type CometChatStickerKeyboardInterface (line 17) | interface CometChatStickerKeyboardInterface {
  type StickerItemProps (line 28) | interface StickerItemProps {

FILE: packages/ChatUiKit/src/extensions/Stickers/CometChatStickerKeyboard/StickerKeyboardConfiguration.ts
  class StickerKeyboardConfiguration (line 10) | class StickerKeyboardConfiguration {
    method constructor (line 12) | constructor({ onPress = (item: CometChat.CustomMessage) => {} }) {

FILE: packages/ChatUiKit/src/extensions/Stickers/StickerConfiguration.ts
  type StickerConfigurationInterface (line 3) | interface StickerConfigurationInterface {
  class StickerConfiguration (line 7) | class StickerConfiguration implements StickerConfigurationInterface {
    method constructor (line 10) | constructor({ style = {} }: StickerConfigurationInterface) {

FILE: packages/ChatUiKit/src/extensions/Stickers/StickersBubble.tsx
  type CometChatStickerBubbleProps (line 4) | interface CometChatStickerBubbleProps {

FILE: packages/ChatUiKit/src/extensions/Stickers/StickersExtension.ts
  class StickersExtension (line 6) | class StickersExtension extends ExtensionsDataSource {
    method constructor (line 10) | constructor(stickerConfiguration?: StickerConfigurationInterface) {
    method addExtension (line 18) | override addExtension(): void {
    method getExtensionId (line 28) | override getExtensionId(): string {

FILE: packages/ChatUiKit/src/extensions/Stickers/StickersExtensionDecorator.tsx
  class StickersExtensionDecorator (line 266) | class StickersExtensionDecorator extends DataSourceDecorator {
    method constructor (line 269) | constructor(props: { dataSource: DataSource; configration?: StickerCon...
    method isDeletedMessage (line 279) | isDeletedMessage(message: CometChat.BaseMessage): boolean {
    method getAllMessageTemplates (line 286) | getAllMessageTemplates(
    method getStickerBubble (line 326) | getStickerBubble(
    method getAuxiliaryOptions (line 356) | getAuxiliaryOptions(
    method getAllMessageCategories (line 387) | getAllMessageCategories(): string[] {
    method getAllMessageTypes (line 398) | getAllMessageTypes(): string[] {
    method getId (line 407) | getId(): string {
    method getLastConversationMessage (line 414) | getLastConversationMessage(

FILE: packages/ChatUiKit/src/extensions/ThumbnailGeneration/ThumbnailGenerationDecorator.tsx
  class ThumbnailGenerationExtensionDecorator (line 18) | class ThumbnailGenerationExtensionDecorator extends DataSourceDecorator {
    method constructor (line 25) | constructor(dataSource: DataSource) {
    method getId (line 35) | getId(): string {
    method checkThumbnail (line 47) | checkThumbnail(message: CometChat.MediaMessage) {
    method getVideoMessageBubble (line 75) | getVideoMessageBubble(
    method getImageMessageBubble (line 110) | getImageMessageBubble(

FILE: packages/ChatUiKit/src/extensions/ThumbnailGeneration/ThumbnailGenerationExtension.tsx
  class ThumbnailGenerationExtension (line 5) | class ThumbnailGenerationExtension extends ExtensionsDataSource {
    method constructor (line 7) | constructor(
    method addExtension (line 13) | override addExtension(): void {
    method getExtensionId (line 22) | override getExtensionId(): string {

FILE: packages/ChatUiKit/src/shared/CometChatUiKit/CometChatUIKit.ts
  class CometChatUIKit (line 20) | class CometChatUIKit {
    method init (line 27) | static init(uiKitSettings: UIKitSettings) {
    method attachListener (line 91) | private static attachListener() {
    method enableExtensions (line 118) | private static enableExtensions() {
    method getLoggedInUser (line 143) | static async getLoggedInUser(): Promise<CometChat.User> {
    method setLoggedInUser (line 157) | private static setLoggedInUser(user: CometChat.User | null) {
    method setConversationUpdateSettings (line 161) | private static setConversationUpdateSettings(
    method getConversationUpdateSettings (line 167) | static getConversationUpdateSettings(): CometChat.ConversationUpdateSe...
    method removeLoggedInUser (line 171) | private static removeLoggedInUser() {
    method removeListener (line 175) | private static removeListener() {
    method login (line 183) | static async login({
    method logout (line 215) | static logout(): Promise<Object> {
    method createUser (line 222) | static createUser(user: CometChat.User): Promise<CometChat.User> {
    method updateUser (line 229) | static updateUser(user: CometChat.User): Promise<CometChat.User> {
    method checkAuthSettings (line 237) | static checkAuthSettings(onError: (e: CometChat.CometChatException) =>...
    method sendCustomMessage (line 268) | static sendCustomMessage(
    method sendMediaMessage (line 297) | static sendMediaMessage(
    method sendTextMessage (line 352) | static sendTextMessage(
    method getDataSource (line 380) | static getDataSource() {

FILE: packages/ChatUiKit/src/shared/CometChatUiKit/CometChatUIKitHelper.ts
  class CometChatUIKitHelper (line 10) | class CometChatUIKitHelper {
    method onMessageSent (line 12) | static onMessageSent(message: CometChat.BaseMessage, status: string): ...
    method onMessageEdited (line 16) | static onMessageEdited(message: CometChat.BaseMessage, status: string)...
    method onMessageDeleted (line 20) | static onMessageDeleted(message: CometChat.BaseMessage): void {
    method onMessageRead (line 24) | static onMessageRead(message: CometChat.BaseMessage): void {
    method onUserBlocked (line 29) | static onUserBlocked(user: CometChat.User): void {
    method onUserUnblocked (line 33) | static onUserUnblocked(user: CometChat.User): void {
    method onGroupCreated (line 38) | static onGroupCreated(group: CometChat.Group): void {
    method onGroupDeleted (line 42) | static onGroupDeleted(group: CometChat.Group): void {
    method onGroupLeft (line 46) | static onGroupLeft(
    method onGroupMemberScopeChanged (line 58) | static onGroupMemberScopeChanged(
    method onGroupMemberBanned (line 74) | static onGroupMemberBanned(
    method onGroupMemberKicked (line 88) | static onGroupMemberKicked(
    method onGroupMemberUnbanned (line 102) | static onGroupMemberUnbanned(
    method onGroupMemberJoined (line 116) | static onGroupMemberJoined(joinedUser: CometChat.User, joinedGroup: Co...
    method onGroupMemberAdded (line 123) | static onGroupMemberAdded(
    method onOwnershipChanged (line 137) | static onOwnershipChanged(group: CometChat.Group, newOwner: CometChat....
    method onConversationDeleted (line 145) | static onConversationDeleted(conversation: CometChat.Conversation): vo...

FILE: packages/ChatUiKit/src/shared/CometChatUiKit/UIKitSettings.ts
  type UIKitSettings (line 4) | type UIKitSettings = {
  function UIKitSettings (line 20) | function UIKitSettings({

FILE: packages/ChatUiKit/src/shared/assets/images/index.ts
  constant ICONS (line 15) | const ICONS = {

FILE: packages/ChatUiKit/src/shared/base/BaseStyle.ts
  class BaseStyle (line 14) | class BaseStyle {
    method constructor (line 20) | constructor({
  type BaseStyleInterface (line 35) | interface BaseStyleInterface {

FILE: packages/ChatUiKit/src/shared/base/BorderStyle.ts
  class BorderStyle (line 9) | class BorderStyle {
    method constructor (line 13) | constructor({
  type BorderStyleInterface (line 24) | interface BorderStyleInterface {

FILE: packages/ChatUiKit/src/shared/base/FontStyle.ts
  class FontStyle (line 8) | class FontStyle {
    method constructor (line 24) | constructor({
  type FontStyleInterface (line 34) | interface FontStyleInterface {

FILE: packages/ChatUiKit/src/shared/base/ShadowStyle.ts
  class ShadowStyle (line 5) | class ShadowStyle {
    method constructor (line 19) | constructor({
  type ShadowStyleInterface (line 34) | interface ShadowStyleInterface {

FILE: packages/ChatUiKit/src/shared/base/Types.ts
  type SelectionMode (line 8) | type SelectionMode = "none" | "single" | "multiple";
  type ConversationType (line 10) | type ConversationType = "both" | "users" | "groups";
  type MessageListAlignmentType (line 12) | type MessageListAlignmentType = "standard" | "leftAligned";
  type MessageBubbleAlignmentType (line 14) | type MessageBubbleAlignmentType = "left" | "right" | "center";
  type MessageTimeAlignmentType (line 16) | type MessageTimeAlignmentType = "top" | "bottom";
  type AdditionalParams (line 18) | type AdditionalParams = {
  type AdditionalAttachmentOptionsParams (line 37) | type AdditionalAttachmentOptionsParams = {
  type AdditionalAuxiliaryOptionsParams (line 50) | type AdditionalAuxiliaryOptionsParams = {
  type AdditionalAuxiliaryHeaderOptionsParams (line 61) | type AdditionalAuxiliaryHeaderOptionsParams = {

FILE: packages/ChatUiKit/src/shared/base/vars.ts
  type IThis (line 1) | interface IThis {

FILE: packages/ChatUiKit/src/shared/constants/UIKitConstants.ts
  constant USER_ONLINE_STATUS (line 3) | const USER_ONLINE_STATUS = "online";
  constant NO_USERS_FOUND (line 4) | const NO_USERS_FOUND = "no_users_found";
  constant NO_DATA_FOUND (line 5) | const NO_DATA_FOUND = "no_data_found";
  constant SOMETHING_WRONG (line 6) | const SOMETHING_WRONG = "something_wrong";
  constant LOADING (line 7) | const LOADING = "loading";
  constant NO_GROUPS_FOUND (line 8) | const NO_GROUPS_FOUND = "no_groups_found";
  constant ON_USER_ITEM_CLICK (line 9) | const ON_USER_ITEM_CLICK = "onItemClick";
  constant ON_USER_ERROR (line 10) | const ON_USER_ERROR = "onUserError";
  constant ON_USER_BLOCK (line 11) | const ON_USER_BLOCK = "onUserBlock";
  constant ON_USER_UNBLOCK (line 12) | const ON_USER_UNBLOCK = "onUserUnBlock";
  constant USERS_CLICK_LISTENER_ID (line 13) | const USERS_CLICK_LISTENER_ID = "clicklistener2";
  constant USERS (line 14) | const USERS = "Users";
  constant SEARCH (line 15) | const SEARCH = "Search";
  constant CALL_INITIATED (line 17) | const CALL_INITIATED = CometChat.CALL_STATUS.INITIATED;
  constant CALL_ONGOING (line 18) | const CALL_ONGOING = CometChat.CALL_STATUS.ONGOING;
  constant CALL_REJECTED (line 19) | const CALL_REJECTED = CometChat.CALL_STATUS.REJECTED;
  constant CALL_CANCELLED (line 20) | const CALL_CANCELLED = CometChat.CALL_STATUS.CANCELLED;
  constant CALL_BUSY (line 21) | const CALL_BUSY = CometChat.CALL_STATUS.BUSY;
  constant CALL_UNANSWERED (line 22) | const CALL_UNANSWERED = CometChat.CALL_STATUS.UNANSWERED;
  constant CALL_ENDED (line 23) | const CALL_ENDED = CometChat.CALL_STATUS.ENDED;
  constant ON_INCOMING_CALL_RECEIVED (line 25) | const ON_INCOMING_CALL_RECEIVED = "onIncomingCallReceived";
  constant ON_INCOMING_CALL_CANCELLED (line 26) | const ON_INCOMING_CALL_CANCELLED = "onIncomingCallCancelled";
  constant ON_CUSTOM_MESSAGE_RECEIVED (line 27) | const ON_CUSTOM_MESSAGE_RECEIVED = "onCustomMessageReceived";
  constant ON_MEDIA_MESSAGE_REVEIVED (line 28) | const ON_MEDIA_MESSAGE_REVEIVED = "onMediaMessageReceived";
  constant ON_MESSAGE_DELETED (line 29) | const ON_MESSAGE_DELETED = "onMessageDeleted";
  constant ON_MESSAGE_DELIVERED (line 30) | const ON_MESSAGE_DELIVERED = "ON_MESSAGE_DELIVERED";
  constant ON_MESSAGE_EDITED (line 31) | const ON_MESSAGE_EDITED = "messageEdited";
  constant ON_MESSAGE_READ (line 32) | const ON_MESSAGE_READ = "messageRead";
  constant ON_MESSAGE_RECEIVED (line 33) | const ON_MESSAGE_RECEIVED = "ON_MESSAGE_RECEIVED";
  constant ON_TEXT_MESSAGE_RECEIVED (line 34) | const ON_TEXT_MESSAGE_RECEIVED = "onTextMessageReceived";
  constant ON_TRANSIENT_MESSAGE_RECEIVED (line 35) | const ON_TRANSIENT_MESSAGE_RECEIVED = "ON_TRANSIENT_MESSAGE_RECEIVED";
  constant ON_TYPING_ENDED (line 36) | const ON_TYPING_ENDED = "onTypingEnded";
  constant ON_TYPING_STARTED (line 37) | const ON_TYPING_STARTED = "onTypingStarted";
  constant ON_USER_OFFLIE (line 38) | const ON_USER_OFFLIE = "onUserOffline";
  constant ON_USER_ONLINE (line 39) | const ON_USER_ONLINE = "onUserOnline";
  constant ON_GROUP_MEMBER_ADDED_TO_GROUP (line 40) | const ON_GROUP_MEMBER_ADDED_TO_GROUP = "onGroupMemberAddedToGroup";
  constant ON_GROUP_MEMBER_BANNED (line 41) | const ON_GROUP_MEMBER_BANNED = "onGroupMemberBanned";
  constant ON_GROUP_MEMBER_JOINED (line 42) | const ON_GROUP_MEMBER_JOINED = "onGroupMemberJoined";
  constant ON_GROUP_MEMBER_KICKED (line 43) | const ON_GROUP_MEMBER_KICKED = "onGroupMemberKicked";
  constant ON_GROUP_MEMBER_LEFT (line 44) | const ON_GROUP_MEMBER_LEFT = "onGroupMemberLeft";
  constant ON_GROUP_MEMBER_SCOPE_CHANGED (line 45) | const ON_GROUP_MEMBER_SCOPE_CHANGED = "onGroupMemberScopeChanged";
  constant ON_GROUP_MEMBER_UNBANNED (line 46) | const ON_GROUP_MEMBER_UNBANNED = "onGroupMemberUnbanned";
  constant ON_CONVERSATION_ITEM_CLICK (line 47) | const ON_CONVERSATION_ITEM_CLICK = "onConversationItemClicked";
  constant PRIVATE_GROUP_COLOR (line 49) | const PRIVATE_GROUP_COLOR = "rgb(0, 200, 111)";
  constant PASSWORD_GROUP_COLOR (line 50) | const PASSWORD_GROUP_COLOR = "rgb(247, 165, 0)";
  constant IMAGE_PREFETCH_MAX_ATTEMPTS (line 52) | const IMAGE_PREFETCH_MAX_ATTEMPTS = 5;
  constant IMAGE_PREFETCH_TIMEOUT (line 53) | const IMAGE_PREFETCH_TIMEOUT = 800;
  constant ONE_SECOND_IN_MS (line 135) | const ONE_SECOND_IN_MS = 1000;
  constant PATTERN (line 137) | const PATTERN = [1 * ONE_SECOND_IN_MS, 2 * ONE_SECOND_IN_MS, 3 * ONE_SEC...
  type ElementType (line 336) | enum ElementType {
  type ButtonAction (line 347) | enum ButtonAction {
  type HTTPSRequestMethods (line 353) | enum HTTPSRequestMethods {
  type goalType (line 360) | enum goalType {
  type MessageReceipt (line 367) | enum MessageReceipt {
  type MentionsType (line 375) | enum MentionsType {
  type MentionsVisibility (line 380) | enum MentionsVisibility {
  constant FILE_EXTENSION (line 386) | const FILE_EXTENSION = {
  type FileExtensionKey (line 438) | type FileExtensionKey = keyof typeof FILE_EXTENSION;
  type FileExtensionKey (line 447) | type FileExtensionKey = keyof typeof FILE_EXTENSION;
  type MentionsTargetElement (line 451) | enum MentionsTargetElement {
  type EnterKeyBehavior (line 462) | enum EnterKeyBehavior {

FILE: packages/ChatUiKit/src/shared/events/CometChatMessageEvents/index.ts
  class CometChatMessageEvents (line 1) | class CometChatMessageEvents {

FILE: packages/ChatUiKit/src/shared/events/CometChatUIEventHandler/CometChatUIEventHandler.ts
  class CometChatUIEventHandler (line 18) | class CometChatUIEventHandler {
    method constructor (line 27) | constructor() {}
    method emitPanelEvent (line 29) | static emitPanelEvent(name: string, param: object) {
    method emitCallEvent (line 42) | static emitCallEvent(name: string, param: object) {
    method addCallListener (line 85) | static addCallListener(name: string, callHandler: CallUIEventListener) {
    method removeCallListener (line 101) | static removeCallListener(name: string) {
    method emitMessageEvent (line 113) | static emitMessageEvent(name: string, param: object) {
    method addMessageListener (line 201) | static addMessageListener(name: string, messageHandler: MessageUIEvent...
    method removeMessageListener (line 217) | static removeMessageListener(name: string) {
    method emitConversationEvent (line 229) | static emitConversationEvent(name: string, param: object) {
    method addConversationListener (line 243) | static addConversationListener(name: string, conversationHandler: Conv...
    method removeConversationListener (line 260) | static removeConversationListener(name: string) {
    method emitGroupEvent (line 271) | static emitGroupEvent(name: string, param: object) {
    method addGroupListener (line 308) | static addGroupListener(name: string, groupHandler: GroupUIEventListen...
    method removeGroupListener (line 324) | static removeGroupListener(name: string) {
    method emitUserEvent (line 336) | static emitUserEvent(name: string, param: object) {
    method addUserListener (line 349) | static addUserListener(name: string, userHandler: UserUIEventListener) {
    method removeUserListener (line 365) | static removeUserListener(name: string) {
    method emitUIEvent (line 377) | static emitUIEvent(name: string, param: object) {
    method addUIListener (line 407) | static addUIListener(name: string, uiHandlers: UIEventListener) {
    method removeUIListener (line 423) | static removeUIListener(name: string) {

FILE: packages/ChatUiKit/src/shared/events/CometChatUIEventHandler/Listener.ts
  function isFalsy (line 3) | function isFalsy($false: any) {
  type MessageUIEvents (line 12) | type MessageUIEvents = {
  class MessageUIEventListener (line 43) | class MessageUIEventListener {
    method constructor (line 73) | constructor({
  type CallUIEvents (line 143) | type CallUIEvents = {
  type PanelUIEvents (line 158) | type PanelUIEvents = {
  class PanelUIEventListener (line 163) | class PanelUIEventListener {
    method constructor (line 167) | constructor({ ccShowPanel, ccHidePanel }: PanelUIEvents) {
  class CallUIEventListener (line 172) | class CallUIEventListener {
    method constructor (line 186) | constructor({
  type UserUIEvents (line 215) | type UserUIEvents = {
  class UserUIEventListener (line 220) | class UserUIEventListener {
    method constructor (line 223) | constructor({ ccUserBlocked, ccUserUnBlocked }: UserUIEvents) {
  type UIEvents (line 229) | type UIEvents = {
  class UIEventListener (line 238) | class UIEventListener {
    method constructor (line 246) | constructor({
  class GroupUIEventListener (line 264) | class GroupUIEventListener {
    method constructor (line 277) | constructor({
  class UserCallUIEventListener (line 315) | class UserCallUIEventListener {
    method constructor (line 324) | constructor({
  type ConversationUIEvents (line 345) | type ConversationUIEvents = {
  class ConversationUIEventListener (line 349) | class ConversationUIEventListener {
    method constructor (line 352) | constructor({ ccConversationDeleted, ccUpdateConversation }: Conversat...
  type EventListener (line 358) | interface EventListener {
  class Listener (line 372) | class Listener implements EventListener {
    method constructor (line 376) | constructor(name: string, callback: Function) {
  class MessageListener (line 382) | class MessageListener extends Listener implements EventListener {
    method constructor (line 385) | constructor(
  class ConversationListener (line 397) | class ConversationListener extends Listener implements EventListener {
    method constructor (line 400) | constructor(
  class UserListener (line 411) | class UserListener extends Listener implements EventListener {
    method constructor (line 414) | constructor(
  class UIListener (line 426) | class UIListener extends Listener implements EventListener {
    method constructor (line 429) | constructor(
  class GroupListener (line 441) | class GroupListener extends Listener implements EventListener {
    method constructor (line 444) | constructor(
  class UserCallListener (line 456) | class UserCallListener extends Listener implements EventListener {
    method constructor (line 459) | constructor(callEventHandler?: UserCallUIEventListener, cursor?: numbe...
  class CallListener (line 465) | class CallListener extends Listener implements EventListener {
    method constructor (line 468) | constructor(
  class PanelListener (line 479) | class PanelListener extends Listener implements EventListener {
    method constructor (line 482) | constructor(

FILE: packages/ChatUiKit/src/shared/events/CometChatUIEvents.ts
  type CometChatUIEvents (line 1) | enum CometChatUIEvents {

FILE: packages/ChatUiKit/src/shared/events/ListenerInitializer.ts
  class ListenerInitializer (line 7) | class ListenerInitializer {
    method attachListeners (line 11) | public static attachListeners(user?: CometChat.User) {
    method detachListeners (line 15) | public static detachListeners() {
    method getMessageListenerObject (line 19) | private static getMessageListenerObject() {

FILE: packages/ChatUiKit/src/shared/events/conversations.ts
  type CometChatConversationEvents (line 1) | enum CometChatConversationEvents {

FILE: packages/ChatUiKit/src/shared/events/groups.ts
  type CometChatGroupsEvents (line 1) | enum CometChatGroupsEvents {

FILE: packages/ChatUiKit/src/shared/events/messages.ts
  type MessageEvents (line 1) | enum MessageEvents {

FILE: packages/ChatUiKit/src/shared/formatters/CometChatMentionsFormatter/CometChatMentionsFormatter.tsx
  type MentionsSubStyle (line 25) | type MentionsSubStyle = {
  type MentionContext (line 32) | type MentionContext = "composer" | "conversation" | "incoming" | "outgoi...
  function isCometChatTheme (line 34) | function isCometChatTheme(t: unknown): t is CometChatTheme {
  class CometChatMentionsFormatter (line 45) | class CometChatMentionsFormatter extends CometChatTextFormatter {
    method resolveStyle (line 76) | private resolveStyle(isSelf: boolean): { textStyle: TextStyle; backgro...
    method constructor (line 128) | constructor(themeOrUser?: CometChatTheme | CometChat.User, loggedInUse...
    method setMentionAllLabel (line 204) | setMentionAllLabel(label: string) {
    method setDisableMentionAll (line 209) | setDisableMentionAll(disable: boolean) {
    method getMentionAllLabel (line 214) | getMentionAllLabel() {
    method isMentionAllDisabled (line 218) | isMentionAllDisabled() {
    method buildGroupMentionItem (line 222) | private buildGroupMentionItem(): SuggestionItem | null {
    method setMessage (line 241) | setMessage(messageObject: CometChat.BaseMessage) {
    method setTargetElement (line 276) | setTargetElement(target: MentionsTargetElement) {
    method setTextStyle (line 280) | setTextStyle(textStyle: any) {
    method handlePreMessageSend (line 284) | handlePreMessageSend(message: CometChat.TextMessage): CometChat.TextMe...
    method handleComposerPreview (line 297) | handleComposerPreview(message: CometChat.TextMessage): void {
    method convertCCUsersToSuggestionsItem (line 335) | private convertCCUsersToSuggestionsItem(users: CometChat.User[]) {
    method setSearchRequestBuilder (line 353) | setSearchRequestBuilder(
    method shouldLoadLocalData (line 359) | private shouldLoadLocalData(searchKey?: string) {
    method search (line 375) | search(searchKey: string): void {
    method fetchNext (line 395) | fetchNext(freshCall?: boolean): void | null {
    method setSearchData (line 416) | setSearchData(data: Array<SuggestionItem>) {
    method setLimit (line 427) | setLimit(limit: number) {
    method getLimit (line 434) | getLimit() {
    method getUniqueUsersList (line 441) | getUniqueUsersList(): Set<number | string> {
    method getMessage (line 458) | getMessage(): CometChat.BaseMessage {
    method getSuggestionItems (line 483) | getSuggestionItems(): Array<SuggestionItem> {
    method setSuggestionItems (line 492) | setSuggestionItems(SuggestionItems: Array<SuggestionItem>) {
    method getMentionsStyle (line 501) | getMentionsStyle(): CometChatTheme["mentionsStyle"] {
    method setComposerMentionStyle (line 505) | setComposerMentionStyle(s: MentionsSubStyle) {
    method setConversationMentionStyle (line 509) | setConversationMentionStyle(s: MentionsSubStyle) {
    method setIncomingBubbleMentionStyle (line 513) | setIncomingBubbleMentionStyle(s: MentionsSubStyle) {
    method setOutgoingBubbleMentionStyle (line 517) | setOutgoingBubbleMentionStyle(s: MentionsSubStyle) {
    method setMentionsStyle (line 523) | setMentionsStyle(patch?: CometChatTheme["mentionsStyle"]) {
    method setContext (line 534) | setContext(ctx: MentionContext) {
    method getFormattedText (line 539) | getFormattedText(
    method setOnMentionClick (line 552) | setOnMentionClick(callBack: (message: CometChat.BaseMessage, uid: stri...
    method addMentionsView (line 575) | protected addMentionsView(
    method setType (line 737) | setType(type: MentionsType) {
    method setVisibleIn (line 745) | setVisibleIn(visibleIn: MentionsVisibility) {
    method getVisibleIn (line 752) | getVisibleIn() {
    method getType (line 759) | getType() {
    method getErrorString (line 763) | getErrorString() {

FILE: packages/ChatUiKit/src/shared/formatters/CometChatMentionsFormatter/MentionTextStyle.ts
  class MentionTextStyle (line 8) | class MentionTextStyle {
    method constructor (line 11) | constructor(props: MentionTextStyle) {

FILE: packages/ChatUiKit/src/shared/formatters/CometChatRichTextFormatter/index.tsx
  type RichTextStyle (line 9) | interface RichTextStyle {
  constant ORDERED_LIST_REGEX (line 26) | const ORDERED_LIST_REGEX = /^(\d+)\.(?:\s(.*))?$/;
  constant ORDERED_LIST_DETECT_REGEX (line 27) | const ORDERED_LIST_DETECT_REGEX = /^\d+\.(\s|$)/;
  constant LINK_REGEX (line 28) | const LINK_REGEX = /\[([^\]]+)\]\(([^)]+)\)/;
  constant URL_PROTOCOL_REGEX (line 29) | const URL_PROTOCOL_REGEX = /^(https?|mailto|tel):/i;
  constant QUOTE_BULLET_REGEX (line 31) | const QUOTE_BULLET_REGEX = /^- (.*)$/;
  constant QUOTE_ORDERED_REGEX (line 32) | const QUOTE_ORDERED_REGEX = /^(\s*)(\d+)\.\s(.*)$/;
  constant MENTION_PATTERN_REGEX (line 34) | const MENTION_PATTERN_REGEX = /<@(?:uid|all):[^>]*>/g;
  constant LIST_ROW_STYLE (line 37) | const LIST_ROW_STYLE = { flexDirection: 'row' as const, flexShrink: 1 as...
  constant BULLET_MARKER_STYLE (line 38) | const BULLET_MARKER_STYLE = { width: 18 };
  constant ORDERED_MARKER_STYLE (line 39) | const ORDERED_MARKER_STYLE = { width: 24 };
  constant LIST_CONTENT_STYLE (line 40) | const LIST_CONTENT_STYLE = { flexShrink: 1, flexGrow: 1 };
  function toAlpha (line 43) | function toAlpha(n: number): string {
  function toRoman (line 54) | function toRoman(n: number): string {
  function formatListMarker (line 68) | function formatListMarker(count: number, level: number): string {
  constant NESTED_LIST_INDENT (line 75) | const NESTED_LIST_INDENT = 20;
  function getIndentLevel (line 78) | function getIndentLevel(line: string): number {
  constant BQ_TEXT_ROW_STYLE (line 84) | const BQ_TEXT_ROW_STYLE = { flexDirection: 'row' as const, flexShrink: 1...
  constant BQ_CONTAINER_STYLE (line 89) | const BQ_CONTAINER_STYLE = {
  constant BQ_BAR_STYLE (line 97) | const BQ_BAR_STYLE = {
  constant BQ_CONTENT_STYLE (line 104) | const BQ_CONTENT_STYLE = {
  function isBulletLine (line 113) | function isBulletLine(l: string): boolean {
  class CometChatRichTextFormatter (line 180) | class CometChatRichTextFormatter extends CometChatTextFormatter {
    method constructor (line 183) | constructor(loggedInUser?: CometChat.User) {
    method getFormattedText (line 196) | getFormattedText(inputText: string | null | JSX.Element): string | nul...
    method hasMarkdown (line 216) | private hasMarkdown(text: string): boolean {
    method renderMarkdown (line 238) | private renderMarkdown(text: string): JSX.Element {
    method parseInlineFormats (line 543) | private parseInlineFormats(text: string): JSX.Element | string {
    method findNextFormat (line 658) | private findNextFormat(text: string): { type: string; content: string;...
    method findPair (line 699) | private findPair(text: string, openMarker: string, closeMarker: string...
    method findItalic (line 726) | private findItalic(text: string): { content: string; startIndex: numbe...
    method findLink (line 750) | private findLink(text: string): { type: string; content: string; start...
    method findHtmlUnderline (line 763) | private findHtmlUnderline(text: string): { content: string; startIndex...
    method mergeTextDecoration (line 782) | private mergeTextDecoration(
    method getStyleForFormat (line 820) | private getStyleForFormat(type: string): TextStyle {
    method getMessage (line 832) | getMessage() { return this.messageObject; }
    method setMessage (line 833) | setMessage(messageObject: CometChat.BaseMessage) { this.messageObject ...

FILE: packages/ChatUiKit/src/shared/formatters/CometChatTextFormatter.ts
  method setRegexPatterns (line 65) | setRegexPatterns(regexPattern: RegExp) {
  method setTrackingCharacter (line 97) | setTrackingCharacter(trackCharacter: string) {
  method setComposerId (line 105) | setComposerId(composerId: string | number) {
  method setId (line 113) | setId(id: string | number) {
  method search (line 121) | search(searchKey: string) {}
  method setSearchData (line 127) | setSearchData(data: Array<SuggestionItem>) {
  method setMessage (line 139) | setMessage(messageObject: CometChat.BaseMessage) {
  method getMessage (line 147) | getMessage() {
  method fetchNext (line 154) | fetchNext() {}
  method setUser (line 160) | setUser(user: CometChat.User) {
  method getUser (line 168) | getUser(): CometChat.User {
  method setGroup (line 176) | setGroup(group: CometChat.Group) {
  method getGroup (line 184) | getGroup(): CometChat.Group {
  method getLoggedInUser (line 192) | getLoggedInUser() {
  method setLoggedInUser (line 200) | setLoggedInUser(loggedInUser: CometChat.User) {
  method getFormattedText (line 209) | getFormattedText(inputText: string | null | JSX.Element): string | null ...
  method handlePreMessageSend (line 222) | handlePreMessageSend(message: CometChat.TextMessage): CometChat.TextMess...
  method handleComposerPreview (line 231) | handleComposerPreview(message: CometChat.TextMessage) {}
  method getTrackingCharacter (line 237) | getTrackingCharacter() {
  method getSuggestionItems (line 245) | getSuggestionItems(): Array<SuggestionItem> {
  method setSuggestionItems (line 253) | setSuggestionItems(SuggestionItems: Array<SuggestionItem>) {

FILE: packages/ChatUiKit/src/shared/formatters/CometChatUrlsFormatter/index.tsx
  class CometChatUrlsFormatter (line 7) | class CometChatUrlsFormatter extends CometChatTextFormatter {
    method constructor (line 16) | constructor(loggedInUser?: CometChat.User) {
    method getFormattedText (line 74) | getFormattedText(inputText: string | null | JSX.Element) {
    method getMessage (line 142) | getMessage() {
    method setMessage (line 151) | setMessage(messageObject: CometChat.BaseMessage) {

FILE: packages/ChatUiKit/src/shared/framework/ChatConfigurator.ts
  class ChatConfigurator (line 4) | class ChatConfigurator {
    method init (line 9) | static init(initialSource?: DataSource) {
    method enable (line 15) | static enable(fun: (source: DataSource) => DataSource) {
    method getDataSource (line 24) | static getDataSource() {

FILE: packages/ChatUiKit/src/shared/framework/DataSource.ts
  type DataSource (line 20) | interface DataSource {

FILE: packages/ChatUiKit/src/shared/framework/DataSourceDecorator.tsx
  class DataSourceDecorator (line 14) | class DataSourceDecorator implements DataSource {
    method constructor (line 17) | constructor(dataSource: DataSource) {
    method getId (line 21) | getId(): string {
    method getTextMessageOptions (line 25) | getTextMessageOptions(
    method getAudioMessageOptions (line 35) | getAudioMessageOptions(
    method getVideoMessageOptions (line 45) | getVideoMessageOptions(
    method getImageMessageOptions (line 55) | getImageMessageOptions(
    method getFileMessageOptions (line 65) | getFileMessageOptions(
    method getMessageOptions (line 75) | getMessageOptions(
    method getCommonOptions (line 85) | getCommonOptions(
    method getBottomView (line 95) | getBottomView(message: CometChat.BaseMessage, alignment: MessageBubble...
    method getDeleteMessageBubble (line 99) | getDeleteMessageBubble(message: CometChat.BaseMessage, theme: CometCha...
    method getVideoMessageBubble (line 103) | getVideoMessageBubble(
    method getTextMessageBubble (line 112) | getTextMessageBubble(
    method getImageMessageBubble (line 128) | getImageMessageBubble(
    method getAudioMessageBubble (line 137) | getAudioMessageBubble(
    method getFileMessageBubble (line 147) | getFileMessageBubble(
    method getGroupActionBubble (line 157) | getGroupActionBubble(message: CometChat.BaseMessage, theme: CometChatT...
    method getAgentAssistantMessageBubble (line 161) | getAgentAssistantMessageBubble(message: CometChat.BaseMessage, theme: ...
    method getAgentAssistantMessageTemplate (line 164) | getAgentAssistantMessageTemplate(theme: CometChatTheme, additionalPara...
    method getTextMessageContentView (line 168) | getTextMessageContentView(
    method getAudioMessageContentView (line 177) | getAudioMessageContentView(
    method getVideoMessageContentView (line 185) | getVideoMessageContentView(
    method getImageMessageContentView (line 193) | getImageMessageContentView(
    method getFileMessageContentView (line 201) | getFileMessageContentView(
    method getTextMessageTemplate (line 209) | getTextMessageTemplate(
    method getFormMessageTemplate (line 216) | getFormMessageTemplate(theme: CometChatTheme, additionalParams?: Addit...
    method getSchedulerMessageTemplate (line 220) | getSchedulerMessageTemplate(theme: CometChatTheme, additionalParams?: ...
    method getCardMessageTemplate (line 224) | getCardMessageTemplate(theme: CometChatTheme, additionalParams?: Addit...
    method getAudioMessageTemplate (line 228) | getAudioMessageTemplate(theme: CometChatTheme, additionalParams?: Addi...
    method getVideoMessageTemplate (line 232) | getVideoMessageTemplate(theme: CometChatTheme, additionalParams?: Addi...
    method getImageMessageTemplate (line 236) | getImageMessageTemplate(theme: CometChatTheme, additionalParams?: Addi...
    method getFileMessageTemplate (line 240) | getFileMessageTemplate(theme: CometChatTheme, additionalParams?: Addit...
    method getAllMessageTemplates (line 244) | getAllMessageTemplates(
    method getMessageTemplate (line 251) | getMessageTemplate(
    method getGroupActionTemplate (line 261) | getGroupActionTemplate(theme: CometChatTheme): CometChatMessageTemplate {
    method getAllMessageTypes (line 265) | getAllMessageTypes(): string[] {
    method getAllMessageCategories (line 269) | getAllMessageCategories(): string[] {
    method getAuxiliaryOptions (line 273) | getAuxiliaryOptions(
    method getMessageTypeToSubtitle (line 282) | getMessageTypeToSubtitle(messageType: string): string {
    method getAttachmentOptions (line 286) | getAttachmentOptions(
    method getAuxiliaryButtonOptions (line 296) | getAuxiliaryButtonOptions() {
    method getLastConversationMessage (line 300) | getLastConversationMessage(
    method getAuxiliaryHeaderAppbarOptions (line 307) | getAuxiliaryHeaderAppbarOptions(
    method getAllTextFormatters (line 315) | getAllTextFormatters(loggedInUser?: CometChat.User, theme?: CometChatT...
    method getMentionsFormatter (line 322) | getMentionsFormatter(loggedInUser?: CometChat.User, theme?: CometChatT...
    method getUrlsFormatter (line 326) | getUrlsFormatter(loggedInUser?: CometChat.User): CometChatUrlsFormatter {
    method getMessagePreviewSubtitle (line 330) | getMessagePreviewSubtitle(message: CometChat.BaseMessage): string {
    method getReplyView (line 334) | getReplyView(

FILE: packages/ChatUiKit/src/shared/framework/ExtensionsDataSource.tsx
  method enable (line 7) | enable(): void {

FILE: packages/ChatUiKit/src/shared/framework/MessageDataSource.tsx
  type MentionContext (line 51) | enum MentionContext {
  function isAudioMessage (line 56) | function isAudioMessage(message: CometChat.BaseMessage): message is Come...
  function isVideoMessage (line 63) | function isVideoMessage(message: CometChat.BaseMessage): message is Come...
  function isFileMessage (line 70) | function isFileMessage(message: CometChat.BaseMessage): message is Comet...
  function isActionMessage (line 77) | function isActionMessage(message: CometChat.BaseMessage): message is Com...
  function isTextMessage (line 81) | function isTextMessage(message: CometChat.BaseMessage): message is Comet...
  function isImageMessage (line 88) | function isImageMessage(message: CometChat.BaseMessage): message is Come...
  function isDeletedMessage (line 95) | function isDeletedMessage(message: CometChat.BaseMessage): boolean {
  class MessageDataSource (line 99) | class MessageDataSource implements DataSource {
    method getAgentAssistantMessageBubble (line 102) | getAgentAssistantMessageBubble(message: CometChat.BaseMessage, theme: ...
    method getStreamMessageBubble (line 106) | getStreamMessageBubble(message: CometChat.BaseMessage, theme: CometCha...
    method getAgentAssistantMessageTemplate (line 133) | getAgentAssistantMessageTemplate(theme: CometChatTheme): CometChatMess...
    method getStreamMessageTemplate (line 150) | getStreamMessageTemplate(theme: CometChatTheme, additionalParams?: Add...
    method getEditOption (line 159) | getEditOption(theme: CometChatTheme): CometChatMessageOption {
    method getDeleteOption (line 179) | getDeleteOption(theme: CometChatTheme): CometChatMessageOption {
    method getReplyOption (line 201) | getReplyOption(theme: CometChatTheme): CometChatMessageOption {
    method getReplyInThreadOption (line 220) | getReplyInThreadOption(theme: CometChatTheme): CometChatMessageOption {
    method getReportOption (line 240) | getReportOption(theme: CometChatTheme): CometChatMessageOption {
    method getShareOption (line 260) | getShareOption(theme: CometChatTheme): CometChatMessageOption {
    method getCopyOption (line 279) | getCopyOption(theme: CometChatTheme): CometChatMessageOption {
    method getMarkAsUnreadOption (line 299) | getMarkAsUnreadOption(theme: CometChatTheme): CometChatMessageOption {
    method getInformationOption (line 325) | getInformationOption(theme: CometChatTheme): CometChatMessageOption {
    method getPrivateMessageOption (line 345) | getPrivateMessageOption(theme: CometChatTheme): CometChatMessageOption {
    method isSentByMe (line 361) | isSentByMe(loggedInUser: CometChat.User, message: CometChat.BaseMessag...
    method getTextMessageOptions (line 366) | getTextMessageOptions(
    method getAudioMessageOptions (line 507) | getAudioMessageOptions(
    method getVideoMessageOptions (line 527) | getVideoMessageOptions(
    method getImageMessageOptions (line 547) | getImageMessageOptions(
    method getFileMessageOptions (line 567) | getFileMessageOptions(
    method getMessageOptions (line 587) | getMessageOptions(
    method validateOption (line 672) | private validateOption(
    method getCommonOptions (line 772) | getCommonOptions(
    method getActionMessage (line 884) | getActionMessage(message: any): string {
    method getGroupActionBubble (line 997) | getGroupActionBubble(message: CometChat.BaseMessage, theme: CometChatT...
    method getBottomView (line 1011) | getBottomView(
    method getReplyView (line 1018) | getReplyView(
    method getDeleteMessageBubble (line 1098) | getDeleteMessageBubble(message: CometChat.BaseMessage, theme: CometCha...
    method getVideoMessageBubble (line 1108) | getVideoMessageBubble(
    method getTextMessageBubble (line 1135) | getTextMessageBubble(
    method getImageMessageBubble (line 1301) | getImageMessageBubble(
    method getAudioMessageBubble (line 1319) | getAudioMessageBubble(
    method getFileMessageBubble (line 1348) | getFileMessageBubble(
    method getTextMessageContentView (line 1412) | getTextMessageContentView(
    method getAudioMessageContentView (line 1426) | getAudioMessageContentView(
    method getVideoMessageContentView (line 1440) | getVideoMessageContentView(
    method getImageMessageContentView (line 1453) | getImageMessageContentView(
    method getFileMessageContentView (line 1469) | getFileMessageContentView(
    method getTextMessageTemplate (line 1484) | getTextMessageTemplate(
    method getAudioMessageTemplate (line 1521) | getAudioMessageTemplate(
    method getVideoMessageTemplate (line 1550) | getVideoMessageTemplate(
    method getImageMessageTemplate (line 1579) | getImageMessageTemplate(
    method getFileMessageTemplate (line 1608) | getFileMessageTemplate(
    method getFormMessageTemplate (line 1638) | getFormMessageTemplate(
    method getSchedulerMessageTemplate (line 1665) | getSchedulerMessageTemplate(
    method getCardMessageTemplate (line 1692) | getCardMessageTemplate(
    method getGroupActionTemplate (line 1719) | getGroupActionTemplate(
    method getAllMessageTemplates (line 1732) | getAllMessageTemplates(
    method getMessageTemplate (line 1751) | getMessageTemplate(
    method getAllMessageTypes (line 1798) | getAllMessageTypes(): string[] {
    method getAllMessageCategories (line 1813) | getAllMessageCategories(): string[] {
    method getAuxiliaryOptions (line 1821) | getAuxiliaryOptions(
    method getAuxiliaryHeaderAppbarOptions (line 1829) | getAuxiliaryHeaderAppbarOptions(
    method getId (line 1836) | getId(): string {
    method getMessageTypeToSubtitle (line 1839) | getMessageTypeToSubtitle(messageType: string): string {
    method getAttachmentOptions (line 2123) | getAttachmentOptions(
    method getAuxiliaryButtonOptions (line 2138) | getAuxiliaryButtonOptions() {
    method getLastConversationMessage (line 2142) | getLastConversationMessage(
    method getAllTextFormatters (line 2154) | getAllTextFormatters(
    method getMentionsFormatter (line 2164) | getMentionsFormatter(
    method getUrlsFormatter (line 2171) | getUrlsFormatter(loggedInUser?: CometChat.User): CometChatUrlsFormatter {
    method getMessagePreviewSubtitle (line 2175) | getMessagePreviewSubtitle(message: CometChat.BaseMessage): string {

FILE: packages/ChatUiKit/src/shared/framework/resources/index.ts
  constant ICONS (line 23) | const ICONS = {

FILE: packages/ChatUiKit/src/shared/helper/LocalizedDateHelper.ts
  class LocalizedDateHelper (line 34) | class LocalizedDateHelper {
    method getLocaleConfig (line 50) | public getLocaleConfig(locale: Language): { localeCode: string, dateFo...
    method shouldUse12HourClock (line 95) | private shouldUse12HourClock(locale: Language): boolean {
    method formatTime (line 121) | private formatTime(date: Date, locale: Language): string {
    method getFullLocaleForDateFormatting (line 141) | public static getFullLocaleForDateFormatting(language: Language): stri...
    method formatConversationDate (line 174) | private formatConversationDate(date: Date, locale: Language): string {
    method formatDateSeparator (line 219) | private formatDateSeparator(date: Date, locale: Language): string {
    method formatDateTimeWithSeparator (line 253) | private formatDateTimeWithSeparator(date: Date, locale: Language): str...
    method getFormattedDate (line 287) | getFormattedDate(timestamp: number, pattern: string, locale: Language ...

FILE: packages/ChatUiKit/src/shared/helper/composerHelpers.ts
  type AgenticSendDelayConfig (line 61) | interface AgenticSendDelayConfig {
  type AgenticParentMessageConfig (line 97) | interface AgenticParentMessageConfig {
  type ReplyMessageState (line 165) | interface ReplyMessageState {
  type MessagePreviewState (line 173) | interface MessagePreviewState {
  type ReplyMessageSendConfig (line 229) | interface ReplyMessageSendConfig {
  type SendButtonStateConfig (line 270) | interface SendButtonStateConfig {
  type CreateTextMessageConfig (line 322) | interface CreateTextMessageConfig {
  type CreateMediaMessageConfig (line 364) | interface CreateMediaMessageConfig {
  type MentionOverlap (line 412) | interface MentionOverlap {

FILE: packages/ChatUiKit/src/shared/helper/dateHelper.ts
  class DateHelper (line 5) | class DateHelper {
    method getWeekOfDay (line 49) | getWeekOfDay(date: Date) {
    method getMonthOfDay (line 55) | getMonthOfDay(date: Date, full = false) {
    method getDateFormat (line 62) | getDateFormat(date: Date, pattern: ValueOf<typeof DateHelper.patterns>) {
    method getTimeFormat (line 73) | getTimeFormat(date: Date) {
    method getDate (line 84) | getDate(date: Date, pattern: ValueOf<typeof DateHelper.patterns>) {
    method getFormattedDate (line 105) | getFormattedDate(timestamp: number, pattern: ValueOf<typeof DateHelper...

FILE: packages/ChatUiKit/src/shared/helper/helperFunctions.ts
  function deepMerge (line 7) | function deepMerge<
  function deepClone (line 49) | function deepClone<T>(obj: T, seen = new WeakMap()): T {
  function getLastSeenTime (line 77) | function getLastSeenTime(timestamp: number | null | undefined): string {

FILE: packages/ChatUiKit/src/shared/helper/types/index.ts
  type ImageType (line 15) | type ImageType = ImageURISource;
  type CometChatMessageComposerAction (line 17) | type CometChatMessageComposerAction = ActionItemInterface & {
  type DoNotPartial (line 36) | type DoNotPartial =
  type DeepPartial (line 45) | type DeepPartial<T> = T extends object
  type ValueOf (line 57) | type ValueOf<T> = T[keyof T];
  type RequireAtLeastOne (line 59) | type RequireAtLeastOne<T> = {

FILE: packages/ChatUiKit/src/shared/helper/useKeyboard.tsx
  function onKeyboardDidShow (line 10) | function onKeyboardDidShow(e: KeyboardEvent) {
  function onKeyboardDidHide (line 20) | function onKeyboardDidHide() {

FILE: packages/ChatUiKit/src/shared/icons/Icon.tsx
  type IconName (line 15) | type IconName = keyof typeof ICONS;
  type IconProps (line 17) | type IconProps = {

FILE: packages/ChatUiKit/src/shared/icons/components/ai-chat-history.tsx
  function SvgComponent (line 4) | function SvgComponent({ width = 24, height = 24, color = "#A1A1A1", ...p...

FILE: packages/ChatUiKit/src/shared/icons/components/ai-copy-option.tsx
  function SvgComponent (line 4) | function SvgComponent({ width = 24, height = 24, color = "#A1A1A1", ...p...

FILE: packages/ChatUiKit/src/shared/icons/components/ai-new-chat.tsx
  function SvgComponent (line 4) | function SvgComponent({ width = 24, height = 24, color = "#A1A1A1", ...p...

FILE: packages/ChatUiKit/src/shared/icons/components/ai-send-button.tsx
  function SvgComponent (line 4) | function SvgComponent({ width = 20, height = 20, color = "#000", ...prop...

FILE: packages/ChatUiKit/src/shared/icons/icon-mapping.tsx
  constant ICONS (line 330) | const ICONS = {

FILE: packages/ChatUiKit/src/shared/libs/ImageZoom/ReactNativeZoomableView.tsx
  function calcGestureCenterPoint (line 29) | function calcGestureCenterPoint(
  class ReactNativeZoomableView (line 53) | class ReactNativeZoomableView extends Component<
    method constructor (line 114) | constructor(props: any) {
    method offsetX (line 185) | private set offsetX(x: any) {
    method offsetY (line 188) | private set offsetY(y: any) {
    method offsetX (line 191) | private get offsetX() {
    method offsetY (line 194) | private get offsetY() {
    method __setOffset (line 197) | private __setOffset(axis: 'x' | 'y', offset: number) {
    method __getOffset (line 240) | private __getOffset(axis: 'x' | 'y') {
    method componentDidUpdate (line 244) | componentDidUpdate(
    method componentDidMount (line 274) | componentDidMount() {
    method componentWillUnmount (line 289) | componentWillUnmount() {
    method _invokeOnTransform (line 297) | _invokeOnTransform() {
    method _getZoomableViewEventObject (line 314) | _getZoomableViewEventObject(overwriteObj = {}): ZoomableViewEvent {
    method _handlePinching (line 570) | _handlePinching(
    method _calcOffsetShiftSinceLastGestureState (line 683) | _calcOffsetShiftSinceLastGestureState(gestureCenterPoint: Vec2D) {
    method _handleShifting (line 713) | _handleShifting(gestureState: PanResponderGestureState) {
    method _setNewOffsetPosition (line 742) | async _setNewOffsetPosition(newOffsetX: number, newOffsetY: number) {
    method _addTouch (line 801) | private _addTouch(touch: TouchPoint) {
    method _removeTouch (line 806) | private _removeTouch(touch: TouchPoint) {
    method _handleDoubleTap (line 818) | _handleDoubleTap(e: GestureResponderEvent) {
    method _getNextZoomStep (line 857) | _getNextZoomStep() {
    method _zoomToLocation (line 882) | async _zoomToLocation(x: number, y: number, newZoomLevel: number) {
    method zoomTo (line 929) | async zoomTo(newZoomLevel: number): Promise<boolean> {
    method zoomBy (line 952) | zoomBy(zoomLevelChange: number | null | undefined = null): Promise<boo...
    method moveTo (line 970) | moveTo(newOffsetX: number, newOffsetY: number): Promise<void> {
    method moveBy (line 989) | moveBy(offsetChangeX: number, offsetChangeY: number): Promise<void> {
    method render (line 998) | render() {

FILE: packages/ChatUiKit/src/shared/libs/ImageZoom/ReactNativeZoomableViewWithGestures.tsx
  class ReactNativeZoomableViewWithGestures (line 17) | class ReactNativeZoomableViewWithGestures extends React.Component<
    method constructor (line 23) | constructor(props: ReactNativeZoomableViewWithGesturesProps) {
    method _couldCallSwipeEvent (line 51) | _couldCallSwipeEvent(zoomableViewState: { zoomLevel: number }) {
    method _validateSwipe (line 81) | _validateSwipe(gestureState: any) {
    method _triggerSwipeHandlers (line 101) | _triggerSwipeHandlers(swipeDirection: any, gestureState: PanResponderG...
    method _getSwipeDirection (line 134) | _getSwipeDirection(gestureState: any) {
    method _isValidHorizontalSwipe (line 164) | _isValidHorizontalSwipe(gestureState: { vx: any; dy: any }) {
    method _isValidVerticalSwipe (line 178) | _isValidVerticalSwipe(gestureState: { vy: any; dx: any }) {
    method _isValidSwipe (line 196) | _isValidSwipe(
    method render (line 208) | render() {

FILE: packages/ChatUiKit/src/shared/libs/ImageZoom/helper.ts
  function calcGestureTouchDistance (line 4) | function calcGestureTouchDistance(
  function calcNewScaledOffsetForZoomCentering (line 16) | function calcNewScaledOffsetForZoomCentering(
  type Center (line 44) | interface Center {
  function applyPanBoundariesToOffset (line 48) | function applyPanBoundariesToOffset(
  function getBoundaryCrossedAnim (line 103) | function getBoundaryCrossedAnim(animValue: Animated.Value, toValue: numb...
  function getPanMomentumDecayAnim (line 111) | function getPanMomentumDecayAnim(
  function getZoomToAnimation (line 122) | function getZoomToAnimation(animValue: Animated.Value, toValue: number) {

FILE: packages/ChatUiKit/src/shared/libs/ImageZoom/types/index.ts
  type SwipeDirection (line 3) | enum SwipeDirection {
  type ZoomableViewEvent (line 10) | interface ZoomableViewEvent {
  type ReactNativeZoomableViewProps (line 20) | interface ReactNativeZoomableViewProps extends ViewProps {
  type Vec2D (line 145) | interface Vec2D {
  type TouchPoint (line 150) | interface TouchPoint extends Vec2D {
  type ReactNativeZoomableViewState (line 155) | interface ReactNativeZoomableViewState {
  type ReactNativeZoomableViewWithGesturesProps (line 164) | interface ReactNativeZoomableViewWithGesturesProps extends ReactNativeZo...

FILE: packages/ChatUiKit/src/shared/modals/CometChatAIAssistantTools.ts
  type CometChatAIAssistantToolsFunction (line 5) | type CometChatAIAssistantToolsFunction = (args: any) => void;
  type ICometChatAIAssistantToolsMap (line 12) | interface ICometChatAIAssistantToolsMap {
  class CometChatAIAssistantTools (line 31) | class CometChatAIAssistantTools {
    method constructor (line 35) | constructor(actions: ICometChatAIAssistantToolsMap) {
    method getAction (line 50) | getAction(functionName: string): CometChatAIAssistantToolsFunction | u...
    method getActions (line 60) | getActions(): ICometChatAIAssistantToolsMap {

FILE: packages/ChatUiKit/src/shared/modals/CometChatMessageOption.ts
  type CometChatMessageOption (line 6) | type CometChatMessageOption = ActionItemInterface & {

FILE: packages/ChatUiKit/src/shared/modals/CometChatMessageTemplate.ts
  type MessageTemplateInterface (line 10) | interface MessageTemplateInterface {
  class CometChatMessageTemplate (line 116) | class CometChatMessageTemplate implements MessageTemplateInterface {
    method constructor (line 213) | constructor({

FILE: packages/ChatUiKit/src/shared/modals/StreamMessage.ts
  class StreamMessage (line 4) | class StreamMessage extends CometChat.AIAssistantMessage {
    method constructor (line 6) | constructor(receiverId: string, receiverType: string, text: string, ca...

FILE: packages/ChatUiKit/src/shared/resources/CometChatLocalizeNew/CometChatI18nProvider.tsx
  type CometChatI18nProviderProps (line 8) | interface CometChatI18nProviderProps {

FILE: packages/ChatUiKit/src/shared/resources/CometChatLocalizeNew/CometChatLocalizationHelper.ts
  type TranslationKey (line 22) | type TranslationKey = keyof typeof en;
  type SupportedLanguage (line 50) | type SupportedLanguage = keyof typeof defaultTranslations;
  type CustomTranslations (line 52) | interface CustomTranslations {

FILE: packages/ChatUiKit/src/shared/resources/CometChatLocalizeNew/LocalizationManager.ts
  class LocalizationManager (line 5) | class LocalizationManager {
    method getInstance (line 12) | static getInstance(): LocalizationManager {
    method setLanguage (line 20) | setLanguage(language: Language, translations?: any, fallback?: Languag...
    method getCurrentLanguage (line 29) | getCurrentLanguage(): Language {
    method translate (line 34) | translate(key: string): string {
    method markProviderInactive (line 44) | markProviderInactive() {

FILE: packages/ChatUiKit/src/shared/resources/CometChatLocalizeNew/type.ts
  type Language (line 1) | type Language = string;
  type CometChatLocalizeContextType (line 3) | type CometChatLocalizeContextType = {

FILE: packages/ChatUiKit/src/shared/resources/CometChatSoundManager/CometChatSoundManager.js
  class CometChatSoundManager (line 12) | class CometChatSoundManager {
    method play (line 60) | static async play(sound, customSound, isRequire = false) {
    method pause (line 88) | static pause() {

FILE: packages/ChatUiKit/src/shared/resources/CometChatSoundManager/sound.js
  function isRelativePath (line 10) | function isRelativePath(path) {
  function calculateRelativeVolume (line 14) | function calculateRelativeVolume(volume, pan) {
  function setAndroidVolumes (line 20) | function setAndroidVolumes(sound) {
  class Sound (line 37) | class Sound {
    method constructor (line 38) | constructor(filename, basePath, onError, options) {
    method registerOnPlay (line 80) | registerOnPlay() {
    method enable (line 103) | static enable(enabled) {
    method enableInSilenceMode (line 106) | static enableInSilenceMode(enabled) {
    method setActive (line 111) | static setActive(value) {
    method setCategory (line 116) | static setCategory(value, mixWithOthers = false) {
    method setMode (line 121) | static setMode(value) {
    method setSpeakerPhone (line 126) | static setSpeakerPhone(value) {
    method isLoaded (line 131) | isLoaded() {
    method play (line 134) | play(onEnd) {
    method pause (line 142) | pause(callback) {
    method stop (line 151) | stop(callback) {
    method reset (line 160) | reset() {
    method release (line 167) | release() {
    method getFilename (line 180) | getFilename() {
    method getDuration (line 183) | getDuration() {
    method getNumberOfChannels (line 186) | getNumberOfChannels() {
    method getVolume (line 189) | getVolume() {
    method getSpeed (line 192) | getSpeed() {
    method getPitch (line 195) | getPitch() {
    method setVolume (line 198) | setVolume(value) {
    method setPan (line 209) | setPan(value) {
    method getSystemVolume (line 222) | getSystemVolume(callback) {
    method setSystemVolume (line 228) | setSystemVolume(value) {
    method getPan (line 234) | getPan() {
    method getNumberOfLoops (line 237) | getNumberOfLoops() {
    method setNumberOfLoops (line 240) | setNumberOfLoops(value) {
    method setSpeed (line 251) | setSpeed(value) {
    method setPitch (line 260) | setPitch(value) {
    method getCurrentTime (line 269) | getCurrentTime(callback) {
    method setCurrentTime (line 274) | setCurrentTime(value) {
    method setSpeakerphoneOn (line 281) | setSpeakerphoneOn(value) {
    method isPlaying (line 286) | isPlaying() {
    method checkOtherAudioPlaying (line 289) | async checkOtherAudioPlaying() {

FILE: packages/ChatUiKit/src/shared/services/stream-message.service.ts
  type IStreamData (line 11) | interface IStreamData {
  type QueueCompletionCallback (line 26) | type QueueCompletionCallback = (
  function checkQueueEmptyStatus (line 75) | function checkQueueEmptyStatus(runId: string) {
  function fixMarkdownFences (line 249) | function fixMarkdownFences(text: string): string {
  function autoCloseFences (line 256) | function autoCloseFences(text: string): string {

FILE: packages/ChatUiKit/src/shared/utils/CometChatMessagePreview/CometChatMessagePreview.tsx
  type CometChatMessagePreviewProps (line 20) | interface CometChatMessagePreviewProps {

FILE: packages/ChatUiKit/src/shared/utils/CommonUtils.ts
  class CommonUtils (line 5) | class CommonUtils {
    method clone (line 6) | static clone<T extends any>(arg: T, seen = new WeakMap()): T {
    method mergeObjects (line 47) | static mergeObjects(obj1: object, obj2: object) {
    method mergeArrays (line 80) | static mergeArrays(arr1: Array<object>, arr2: Array<object>, keys: str...
    method getComponentIdFromMessage (line 146) | static getComponentIdFromMessage(message: CometChat.BaseMessage): Obje...
    method checkIdBelongsToThisComponent (line 159) | static checkIdBelongsToThisComponent(
    method prefetchThumbnail (line 173) | static async prefetchThumbnail(

FILE: packages/ChatUiKit/src/shared/utils/MarkdownUtils.ts
  function stripMarkdown (line 22) | function stripMarkdown(text: string): string {
  type PreviewTextResult (line 78) | interface PreviewTextResult {
  function preparePreviewText (line 98) | function preparePreviewText(text: string): PreviewTextResult {

FILE: packages/ChatUiKit/src/shared/utils/MentionUtils.ts
  function isCursorWithinMentionRange (line 9) | function isCursorWithinMentionRange(
  function getMentionRangeAtCursor (line 26) | function getMentionRangeAtCursor(

FILE: packages/ChatUiKit/src/shared/utils/MessageReceiptUtils.ts
  method getReceiptStatus (line 9) | getReceiptStatus(message: CometChat.BaseMessage | undefined): MessageRec...

FILE: packages/ChatUiKit/src/shared/utils/MessageUtils.tsx
  type MessageViewParamsType (line 26) | type MessageViewParamsType = {

FILE: packages/ChatUiKit/src/shared/utils/NetworkUtils.tsx
  class CometChatNetworkUtils (line 1) | class CometChatNetworkUtils {
    method fetcher (line 2) | static async fetcher({
  function isHttpUrl (line 30) | function isHttpUrl(string) {

FILE: packages/ChatUiKit/src/shared/utils/PermissionUtil.ts
  type TPermissibleResources (line 28) | type TPermissibleResources = (typeof permissibleResources)[number];
  type ValueOf (line 30) | type ValueOf<T> = T[keyof T];
  type TPermissionStatus (line 31) | type TPermissionStatus = ValueOf<typeof permissionStatus>;
  class PermissionUtilIOS (line 38) | class PermissionUtilIOS {
    method constructor (line 40) | constructor() {
    method init (line 47) | async init() {
    method get (line 72) | async get(resources: TPermissibleResources[]) {
    method request (line 81) | async request(resources: TPermissibleResources[]) {
    method startResourceBasedTask (line 109) | async startResourceBasedTask(resources: TPermissibleResources[]) {

FILE: packages/ChatUiKit/src/shared/utils/conversationUtils.ts
  class CometChatConversationUtils (line 13) | class CometChatConversationUtils {
    method getLastMessage (line 14) | static getLastMessage(conversation: CometChat.Conversation): CometChat...

FILE: packages/ChatUiKit/src/shared/utils/icsToJson.js
  constant NEW_LINE (line 1) | const NEW_LINE = /\r\n|\n|\r/;
  constant EVENT (line 3) | const EVENT = 'VEVENT';
  constant EVENT_START (line 4) | const EVENT_START = 'BEGIN';
  constant EVENT_END (line 5) | const EVENT_END = 'END';
  constant START_DATE (line 6) | const START_DATE = 'DTSTART';
  constant END_DATE (line 7) | const END_DATE = 'DTEND';
  constant DESCRIPTION (line 8) | const DESCRIPTION = 'DESCRIPTION';
  constant SUMMARY (line 9) | const SUMMARY = 'SUMMARY';
  constant LOCATION (line 10) | const LOCATION = 'LOCATION';
  constant ALARM (line 11) | const ALARM = 'VALARM';
  constant TZID (line 12) | const TZID = 'TZID';
  constant TZOFFSETFROM (line 13) | const TZOFFSETFROM = 'TZOFFSETFROM';
  constant TZOFFSETTO (line 14) | const TZOFFSETTO = 'TZOFFSETTO';

FILE: packages/ChatUiKit/src/shared/views/CometChatAIAssistantMessageBubble/CometChatAIAssistantMessageBubble.tsx
  type CometChatAIAssistantMessageBubbleProps (line 8) | interface CometChatAIAssistantMessageBubbleProps {

FILE: packages/ChatUiKit/src/shared/views/CometChatActionSheet/ActionItem.ts
  type ActionItemInterface (line 5) | interface ActionItemInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatActionSheet/CometChatActionSheet.tsx
  type CometChatActionSheetInterface (line 63) | interface CometChatActionSheetInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatActionSheet/resources/index.ts
  constant ICONS (line 4) | const ICONS = {

FILE: packages/ChatUiKit/src/shared/views/CometChatAudioBubble/CometChatAudioBubble.tsx
  type CometChatAudioBubbleInterface (line 23) | interface CometChatAudioBubbleInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatAvatar/CometChatAvatar.tsx
  type CometChatAvatarProps (line 10) | interface CometChatAvatarProps {

FILE: packages/ChatUiKit/src/shared/views/CometChatAvatar/styles.ts
  type AvatarStyle (line 4) | type AvatarStyle = {

FILE: packages/ChatUiKit/src/shared/views/CometChatBadge/CometChatBadge.tsx
  type CometChatBadgeProps (line 10) | interface CometChatBadgeProps {

FILE: packages/ChatUiKit/src/shared/views/CometChatBadge/styles.ts
  type BadgeStyle (line 4) | type BadgeStyle = {

FILE: packages/ChatUiKit/src/shared/views/CometChatBottomSheet/CometChatBottomSheet.tsx
  type CometChatBottomSheetInterface (line 25) | interface CometChatBottomSheetInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatConfirmDialog/CometChatConfirmDialog.tsx
  type CometChatConfirmDialogInterface (line 21) | interface CometChatConfirmDialogInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatConfirmDialog/style.ts
  type ConfirmDialogStyle (line 6) | type ConfirmDialogStyle = {

FILE: packages/ChatUiKit/src/shared/views/CometChatDate/CometChatDate.tsx
  type CometChatDateInterface (line 14) | interface CometChatDateInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatDate/styles.ts
  type DateStyle (line 5) | type DateStyle = {

FILE: packages/ChatUiKit/src/shared/views/CometChatDateSeperator/CometChatDateSeparator.tsx
  type CometChatDateSeparatorInterface (line 12) | interface CometChatDateSeparatorInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatDateSeperator/styles.ts
  type DateSeparatorStyle (line 5) | type DateSeparatorStyle = {

FILE: packages/ChatUiKit/src/shared/views/CometChatDeletedBubble/CometChatDeletedBubble.tsx
  type CometChatDeletedBubbleInterface (line 12) | interface CometChatDeletedBubbleInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatDeletedBubble/styles.ts
  type DeletedBubbleStyle (line 5) | type DeletedBubbleStyle = {

FILE: packages/ChatUiKit/src/shared/views/CometChatEmojiKeyboard/CometChatEmojiKeyboard.tsx
  type EmojiItem (line 20) | type EmojiItem = {
  type Section (line 25) | type Section = {
  type IconName (line 31) | type IconName =
  constant NUM_COLUMNS (line 60) | const NUM_COLUMNS = 8;
  type CategoryListProps (line 65) | interface CategoryListProps {
  type CometChatEmojiKeyboardProps (line 120) | interface CometChatEmojiKeyboardProps {

FILE: packages/ChatUiKit/src/shared/views/CometChatEmojiKeyboard/Emoji.ts
  class CometChatEmoji (line 8) | class CometChatEmoji {
    method constructor (line 11) | constructor({ char, keywords }) {

FILE: packages/ChatUiKit/src/shared/views/CometChatEmojiKeyboard/EmojiCategory.ts
  class CometChatEmojiCategory (line 9) | class CometChatEmojiCategory {
    method constructor (line 14) | constructor({ id, name, emojis, symbol }) {

FILE: packages/ChatUiKit/src/shared/views/CometChatFileBubble/CometChatFileBubble.tsx
  type CometChatFileBubbleInterface (line 26) | interface CometChatFileBubbleInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatImageBubble/CometChatImageBubble.tsx
  type CometChatImageBubbleInterface (line 11) | interface CometChatImageBubbleInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatImageBubble/CometChatImageLoader.tsx
  type CometChatImageLoaderPropType (line 18) | interface CometChatImageLoaderPropType {

FILE: packages/ChatUiKit/src/shared/views/CometChatImageBubble/assets/index.ts
  constant ICONS (line 3) | const ICONS = {

FILE: packages/ChatUiKit/src/shared/views/CometChatImageViewerModal/resources/index.ts
  constant ICONS (line 3) | const ICONS = {

FILE: packages/ChatUiKit/src/shared/views/CometChatInlineAudioRecorder/AudioWaveformVisualizer.tsx
  constant DEFAULT_STYLE (line 18) | const DEFAULT_STYLE: Required<WaveformStyle> = {
  function normalizeAmplitude (line 38) | function normalizeAmplitude(amplitude: number): number {
  function amplifyAmplitude (line 56) | function amplifyAmplitude(normalizedAmplitude: number): number {
  function processAmplitude (line 78) | function processAmplitude(rawAmplitude: number): number {
  function calculateSeekPosition (line 92) | function calculateSeekPosition(touchX: number, containerWidth: number): ...

FILE: packages/ChatUiKit/src/shared/views/CometChatInlineAudioRecorder/CometChatInlineAudioRecorder.tsx
  function formatDuration (line 25) | function formatDuration(durationMs: number): string {

FILE: packages/ChatUiKit/src/shared/views/CometChatInlineAudioRecorder/types.ts
  type RecorderState (line 17) | type RecorderState =
  type AudioSegment (line 31) | interface AudioSegment {
  type SegmentManagerState (line 50) | interface SegmentManagerState {
  type ButtonStyle (line 66) | interface ButtonStyle {
  type WaveformStyle (line 86) | interface WaveformStyle {
  type CometChatInlineAudioRecorderStyle (line 113) | interface CometChatInlineAudioRecorderStyle {
  type AudioWaveformVisualizerProps (line 146) | interface AudioWaveformVisualizerProps {
  type CometChatInlineAudioRecorderProps (line 173) | interface CometChatInlineAudioRecorderProps {
  type UseAudioRecorderReturn (line 200) | interface UseAudioRecorderReturn {
  type RecorderAction (line 261) | type RecorderAction =
  type RecorderReducerState (line 286) | interface RecorderReducerState {

FILE: packages/ChatUiKit/src/shared/views/CometChatInlineAudioRecorder/useAudioRecorder.ts
  function recorderReducer (line 34) | function recorderReducer(
  function useAudioRecorder (line 180) | function useAudioRecorder(): UseAudioRecorderReturn {

FILE: packages/ChatUiKit/src/shared/views/CometChatLinkConfirmPopup/CometChatLinkConfirmPopup.tsx
  type CometChatLinkConfirmPopupInterface (line 16) | interface CometChatLinkConfirmPopupInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatLinkConfirmPopup/style.ts
  type LinkConfirmPopupStyle (line 5) | type LinkConfirmPopupStyle = {

FILE: packages/ChatUiKit/src/shared/views/CometChatList/CometChatList.tsx
  type CometChatListActionsInterface (line 33) | interface CometChatListActionsInterface {
  type CometChatListStylesInterface (line 44) | interface CometChatListStylesInterface {
  type CometChatListProps (line 102) | interface CometChatListProps {

FILE: packages/ChatUiKit/src/shared/views/CometChatList/Header.tsx
  type HeaderProps (line 21) | interface HeaderProps {
  function Header (line 147) | function Header({

FILE: packages/ChatUiKit/src/shared/views/CometChatList/resources/index.ts
  constant ICONS (line 4) | const ICONS = {

FILE: packages/ChatUiKit/src/shared/views/CometChatListItem/CometChatListItem.tsx
  type CometChatListItemInterface (line 23) | interface CometChatListItemInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatMediaRecorder/AnimatingMic.tsx
  type MediarecorderAnimationStyle (line 17) | type MediarecorderAnimationStyle = {

FILE: packages/ChatUiKit/src/shared/views/CometChatMediaRecorder/CometChatAudioPlayer.tsx
  type CometChatAudioPlayerInterface (line 7) | interface CometChatAudioPlayerInterface {
  function clearTimeInterval (line 34) | function clearTimeInterval() {

FILE: packages/ChatUiKit/src/shared/views/CometChatMediaRecorder/CometChatAudioPreview/CometChatAudioPreview.tsx
  type CometChatAudioBubbleInterface (line 23) | interface CometChatAudioBubbleInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatMediaRecorder/CometChatMediaRecorder.tsx
  type CometChatMediaRecorderInterface (line 21) | interface CometChatMediaRecorderInterface {
  type RecordingState (line 31) | type RecordingState = "initial" | "recording" | "paused" | "stopped" | "...
  function deleteFile (line 69) | function deleteFile() {
  function permissionAlert (line 76) | function permissionAlert() {

FILE: packages/ChatUiKit/src/shared/views/CometChatMediaRecorder/Timer.tsx
  type TimerProps (line 5) | interface TimerProps {

FILE: packages/ChatUiKit/src/shared/views/CometChatMessageBubble/CometChatMessageBubble.tsx
  type CometChatMessageBubbleInterface (line 9) | interface CometChatMessageBubbleInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatMessageInput/CometChatMessageInput.tsx
  type CometChatMessageInputInterface (line 20) | interface CometChatMessageInputInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatNewMessageIndicator/CometChatNewMessageIndicator.tsx
  type CometChatNewMessageIndicatorInterface (line 11) | interface CometChatNewMessageIndicatorInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatNewMessageIndicator/styles.ts
  type NewMessageIndicatorStyle (line 4) | type NewMessageIndicatorStyle = {

FILE: packages/ChatUiKit/src/shared/views/CometChatQuickReactions/CometChatQuickReactions.tsx
  type CometChatQuickReactionsProps (line 10) | interface CometChatQuickReactionsProps {
  function getEmojis (line 51) | function getEmojis(): string[] {

FILE: packages/ChatUiKit/src/shared/views/CometChatQuickReactions/resources/index.ts
  constant ICONS (line 2) | const ICONS = { ADDREACTION };

FILE: packages/ChatUiKit/src/shared/views/CometChatReactionList/CometChatReactionList.tsx
  type CometChatReactionListInterface (line 25) | interface CometChatReactionListInterface {
  function getName (line 342) | function getName() {

FILE: packages/ChatUiKit/src/shared/views/CometChatReactions/CometChatReactions.tsx
  type CometChatReactionsInterface (line 11) | interface CometChatReactionsInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatReceipt/CometChatReceipt.tsx
  type CometChatReceiptInterface (line 16) | interface CometChatReceiptInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatReceipt/resources/index.ts
  constant ICONS (line 7) | const ICONS = {

FILE: packages/ChatUiKit/src/shared/views/CometChatReceipt/style.ts
  type ReceiptStyles (line 5) | type ReceiptStyles = {

FILE: packages/ChatUiKit/src/shared/views/CometChatReportDialog/CometChatReportDialog.tsx
  type CometChatReportDialogInterface (line 22) | interface CometChatReportDialogInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatReportDialog/style.ts
  type ReportDialogStyle (line 5) | type ReportDialogStyle = {

FILE: packages/ChatUiKit/src/shared/views/CometChatRetryButton/CometChatRetryButton.tsx
  type CometChatRetryButtonProps (line 9) | interface CometChatRetryButtonProps {

FILE: packages/ChatUiKit/src/shared/views/CometChatSendButtonView/CometChatSendButtonView.tsx
  type CometChatSendButtonViewProps (line 7) | type CometChatSendButtonViewProps = {

FILE: packages/ChatUiKit/src/shared/views/CometChatStatusIndicator/CometChatStatusIndicator.tsx
  type CometChatStatusIndicatorInterface (line 12) | interface CometChatStatusIndicatorInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatStatusIndicator/styles.ts
  type StatusIndicatorStyles (line 4) | type StatusIndicatorStyles = {

FILE: packages/ChatUiKit/src/shared/views/CometChatStreamMessageBubble/CometChatStreamMessageBubble.tsx
  type CometChatStreamMessageBubbleProps (line 9) | interface CometChatStreamMessageBubbleProps {

FILE: packages/ChatUiKit/src/shared/views/CometChatSuggestionList/CometChatSuggestionList.tsx
  type CometChatSuggestionListInterface (line 13) | interface CometChatSuggestionListInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatSuggestionList/SuggestionItem.ts
  class SuggestionItem (line 1) | class SuggestionItem {
    method constructor (line 43) | constructor(props: SuggestionItem) {

FILE: packages/ChatUiKit/src/shared/views/CometChatTextBubble/CometChatTextBubble.tsx
  constant VIEW_BASED_WRAPPER_STYLE (line 20) | const VIEW_BASED_WRAPPER_STYLE = { flexShrink: 1 as const };
  type CometChatTextBubbleInterface (line 22) | interface CometChatTextBubbleInterface {
  function applyTextStyleDeep (line 54) | function applyTextStyleDeep(

FILE: packages/ChatUiKit/src/shared/views/CometChatTooltipMenu/CometChatTooltipMenu.tsx
  type MenuItemInterface (line 24) | interface MenuItemInterface {
  type CometChatTooltipMenuProps (line 38) | type CometChatTooltipMenuProps = {

FILE: packages/ChatUiKit/src/shared/views/CometChatVideoBubble/CometChatVideoBubble.tsx
  type CometChatVideoBubbleInterface (line 25) | interface CometChatVideoBubbleInterface {

FILE: packages/ChatUiKit/src/shared/views/CometChatVideoPlayer/CometChatVideoPlayer.tsx
  type CometChatVideoPlayerProps (line 17) | interface CometChatVideoPlayerProps {

FILE: packages/ChatUiKit/src/shared/views/ErrorEmptyView/ErrorEmptyView.tsx
  type ErrorEmptyViewProps (line 7) | type ErrorEmptyViewProps = {

FILE: packages/ChatUiKit/src/theme/CometChatThemeHelper.ts
  type Brightness (line 7) | enum Brightness {
  type Colors (line 12) | enum Colors {
  class CometChatThemeHelper (line 17) | class CometChatThemeHelper {
    method getBlendColorsPercentage (line 32) | public static getBlendColorsPercentage(brightness: Brightness): { [key...
    method hexToRgb (line 72) | private static hexToRgb(hex: string): { r: number; g: number; b: numbe...
    method rgbToHex (line 105) | private static rgbToHex(r: number, g: number, b: number): string {
    method blendColors (line 126) | private static blendColors(baseColor: string, blendColor: string, perc...
    method updateColors (line 137) | public static updateColors(color: Partial<CometChatTheme["color"]>, mo...
    method updateOtherColors (line 156) | private static updateOtherColors(
    method updateExtendedColorsForLightTheme (line 282) | private static updateExtendedColorsForLightTheme(
    method updateExtendedColorsForDarkTheme (line 315) | private static updateExtendedColorsForDarkTheme(
    method updateSpacing (line 347) | public static updateSpacing(

FILE: packages/ChatUiKit/src/theme/context.ts
  type ThemeProviderValue (line 6) | interface ThemeProviderValue {

FILE: packages/ChatUiKit/src/theme/default/color/light.ts
  type EachColorValue (line 113) | type EachColorValue<T extends typeof defaultColorLight> = {
  type Color (line 117) | type Color = EachColorValue<typeof defaultColorLight>;

FILE: packages/ChatUiKit/src/theme/default/resources/icons/index.ts
  constant DEFAULT_ICONS (line 11) | const DEFAULT_ICONS = {

FILE: packages/ChatUiKit/src/theme/default/spacing.ts
  type Spacing (line 86) | type Spacing = typeof defaultSpacing;

FILE: packages/ChatUiKit/src/theme/default/typography.ts
  type TypographyVariant (line 3) | interface TypographyVariant {
  type Typography (line 9) | interface Typography {

FILE: packages/ChatUiKit/src/theme/provider.tsx
  type CometChatThemeProviderProps (line 20) | interface CometChatThemeProviderProps {
  function useDebounce (line 24) | function useDebounce<T>(value: T, delay: number): T {
  type CometChatCompThemeProviderProps (line 133) | interface CometChatCompThemeProviderProps {

FILE: packages/ChatUiKit/src/theme/type.ts
  type BubbleStyles (line 28) | type BubbleStyles = {
  type OutgoingBubbleStyles (line 51) | type OutgoingBubbleStyles = Omit<BubbleStyles, 'assistantBubbleStyles'> & {
  type ActionSheetStyle (line 59) | type ActionSheetStyle = {
  type SuggestionListStyle (line 68) | type SuggestionListStyle = {
  type CometChatTheme (line 82) | interface CometChatTheme {
Condensed preview — 1301 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (6,135K chars).
[
  {
    "path": ".gitignore",
    "chars": 1187,
    "preview": "# OSX\n#\n.DS_Store\n\n# Xcode\n#\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.p"
  },
  {
    "path": "README.md",
    "chars": 2387,
    "preview": "<p align=\"center\">\n  <img alt=\"CometChat\" src=\"https://assets.cometchat.io/website/images/logos/banner.png\">\n</p>\n\n# Com"
  },
  {
    "path": "examples/SampleApp/.bundle/config",
    "chars": 59,
    "preview": "BUNDLE_PATH: \"vendor/bundle\"\nBUNDLE_FORCE_RUBY_PLATFORM: 1\n"
  },
  {
    "path": "examples/SampleApp/.eslintrc.js",
    "chars": 64,
    "preview": "module.exports = {\n  root: true,\n  extends: '@react-native',\n};\n"
  },
  {
    "path": "examples/SampleApp/.gitignore",
    "chars": 1085,
    "preview": "# OSX\n#\n.DS_Store\n\n# Xcode\n#\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.p"
  },
  {
    "path": "examples/SampleApp/.prettierrc.js",
    "chars": 91,
    "preview": "module.exports = {\n  arrowParens: 'avoid',\n  singleQuote: true,\n  trailingComma: 'all',\n};\n"
  },
  {
    "path": "examples/SampleApp/.vscode/settings.json",
    "chars": 903,
    "preview": "{\n    \"workbench.colorCustomizations\": {\n        \"activityBar.activeBackground\": \"#fa1b49\",\n        \"activityBar.backgro"
  },
  {
    "path": "examples/SampleApp/.watchmanconfig",
    "chars": 3,
    "preview": "{}\n"
  },
  {
    "path": "examples/SampleApp/App.tsx",
    "chars": 10440,
    "preview": "import './gesture-handler';\nimport React, { useState, useEffect, useRef } from 'react';\nimport {\n  Platform,\n  View,\n  P"
  },
  {
    "path": "examples/SampleApp/AppErrorBoundary.tsx",
    "chars": 2975,
    "preview": "import React from 'react';\nimport { View, Text, StyleSheet, Appearance, Button } from 'react-native';\n\ninterface State {"
  },
  {
    "path": "examples/SampleApp/Gemfile",
    "chars": 510,
    "preview": "source 'https://rubygems.org'\n\n# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version\nruby \""
  },
  {
    "path": "examples/SampleApp/README.md",
    "chars": 2408,
    "preview": "\n<p align=\"center\">\n  <img alt=\"CometChat\" src=\"https://assets.cometchat.io/website/images/logos/banner.png\">\n</p>\n\n# Re"
  },
  {
    "path": "examples/SampleApp/android/app/build.gradle",
    "chars": 4792,
    "preview": "apply plugin: \"com.android.application\"\napply plugin: \"org.jetbrains.kotlin.android\"\napply plugin: \"com.facebook.react\"\n"
  },
  {
    "path": "examples/SampleApp/android/app/proguard-rules.pro",
    "chars": 435,
    "preview": "# Add project specific ProGuard rules here.\n# By default, the flags in this file are appended to flags specified\n# in /u"
  },
  {
    "path": "examples/SampleApp/android/app/src/main/AndroidManifest.xml",
    "chars": 2112,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package='com.cometchat.sampleapp.reactnative.androi"
  },
  {
    "path": "examples/SampleApp/android/app/src/main/java/com/sampleapp/MainActivity.kt",
    "chars": 1033,
    "preview": "package com.cometchat.sampleapp.reactnative.android\nimport android.os.Bundle\n\nimport com.facebook.react.ReactActivity\nim"
  },
  {
    "path": "examples/SampleApp/android/app/src/main/java/com/sampleapp/MainApplication.kt",
    "chars": 1405,
    "preview": "package com.cometchat.sampleapp.reactnative.android\n\nimport android.app.Application\nimport com.facebook.react.PackageLis"
  },
  {
    "path": "examples/SampleApp/android/app/src/main/res/drawable/rn_edit_text_material.xml",
    "chars": 1917,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Copyright (C) 2014 The Android Open Source Project\n\n     Licensed under the "
  },
  {
    "path": "examples/SampleApp/android/app/src/main/res/values/colors.xml",
    "chars": 156,
    "preview": "<resources>\n    <!-- Other color definitions -->\n    <color name=\"notification_color\">#FFFFFF</color> <!-- Replace with "
  },
  {
    "path": "examples/SampleApp/android/app/src/main/res/values/strings.xml",
    "chars": 72,
    "preview": "<resources>\n    <string name=\"app_name\">sampleapp</string>\n</resources>\n"
  },
  {
    "path": "examples/SampleApp/android/app/src/main/res/values/styles.xml",
    "chars": 282,
    "preview": "<resources>\n\n    <!-- Base application theme. -->\n    <style name=\"AppTheme\" parent=\"Theme.AppCompat.DayNight.NoActionBa"
  },
  {
    "path": "examples/SampleApp/android/build.gradle",
    "chars": 574,
    "preview": "buildscript {\n    ext {\n        buildToolsVersion = \"36.0.0\"\n        minSdkVersion = 24\n        compileSdkVersion = 36\n "
  },
  {
    "path": "examples/SampleApp/android/gradle/wrapper/gradle-wrapper.properties",
    "chars": 253,
    "preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
  },
  {
    "path": "examples/SampleApp/android/gradle.properties",
    "chars": 1975,
    "preview": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will o"
  },
  {
    "path": "examples/SampleApp/android/gradlew",
    "chars": 8710,
    "preview": "#!/bin/sh\n\n#\n# Copyright © 2015-2021 the original authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "examples/SampleApp/android/gradlew.bat",
    "chars": 3035,
    "preview": "@REM Copyright (c) Meta Platforms, Inc. and affiliates.\n@REM\n@REM This source code is licensed under the MIT license fou"
  },
  {
    "path": "examples/SampleApp/android/settings.gradle",
    "chars": 340,
    "preview": "pluginManagement { includeBuild(\"../node_modules/@react-native/gradle-plugin\") }\nplugins { id(\"com.facebook.react.settin"
  },
  {
    "path": "examples/SampleApp/app.json",
    "chars": 56,
    "preview": "{\n  \"name\": \"sampleapp\",\n  \"displayName\": \"sampleapp\"\n}\n"
  },
  {
    "path": "examples/SampleApp/babel.config.js",
    "chars": 72,
    "preview": "module.exports = {\n  presets: ['module:@react-native/babel-preset'],\n};\n"
  },
  {
    "path": "examples/SampleApp/gesture-handler.js",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "examples/SampleApp/gesture-handler.native.js",
    "chars": 102,
    "preview": "// Only import react-native-gesture-handler on native platforms\nimport 'react-native-gesture-handler';"
  },
  {
    "path": "examples/SampleApp/index.js",
    "chars": 940,
    "preview": "import {AppRegistry} from 'react-native';\nimport App from './App';\nimport {name as appName} from './app.json';\nimport Ap"
  },
  {
    "path": "examples/SampleApp/ios/.xcode.env",
    "chars": 482,
    "preview": "# This `.xcode.env` file is versioned and is used to source the environment\n# used when running script phases inside Xco"
  },
  {
    "path": "examples/SampleApp/ios/Podfile",
    "chars": 1481,
    "preview": "# Resolve react_native_pods.rb with node to allow for hoisting\nrequire Pod::Executable.execute_command('node', ['-p',\n  "
  },
  {
    "path": "examples/SampleApp/ios/SampleApp/AppDelegate.swift",
    "chars": 1232,
    "preview": "import UIKit\nimport React\nimport React_RCTAppDelegate\nimport ReactAppDependencyProvider\n\n@main\nclass AppDelegate: UIResp"
  },
  {
    "path": "examples/SampleApp/ios/SampleApp/Images.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 1346,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"CometChat_React_Native_40x40.png\",\n      \"idiom\" : \"iphone\",\n      \"scale\" : "
  },
  {
    "path": "examples/SampleApp/ios/SampleApp/Images.xcassets/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}\n"
  },
  {
    "path": "examples/SampleApp/ios/SampleApp/Info.plist",
    "chars": 2379,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "examples/SampleApp/ios/SampleApp/LaunchScreen.storyboard",
    "chars": 3685,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
  },
  {
    "path": "examples/SampleApp/ios/SampleApp/PrivacyInfo.xcprivacy",
    "chars": 986,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "examples/SampleApp/ios/SampleApp.xcodeproj/project.pbxproj",
    "chars": 20857,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "examples/SampleApp/ios/SampleApp.xcodeproj/xcshareddata/xcschemes/SampleApp.xcscheme",
    "chars": 3294,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1210\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "examples/SampleApp/ios/SampleApp.xcworkspace/contents.xcworkspacedata",
    "chars": 227,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:SampleApp.xcod"
  },
  {
    "path": "examples/SampleApp/ios/SampleApp.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "chars": 181,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "examples/SampleApp/jest.config.js",
    "chars": 48,
    "preview": "module.exports = {\n  preset: 'react-native',\n};\n"
  },
  {
    "path": "examples/SampleApp/metro.config.js",
    "chars": 301,
    "preview": "const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');\n\n/**\n * Metro configuration\n * https://"
  },
  {
    "path": "examples/SampleApp/package.json",
    "chars": 2144,
    "preview": "{\n  \"name\": \"sample-app\",\n  \"version\": \"5.3.4\",\n  \"private\": true,\n  \"scripts\": {\n    \"android\": \"react-native run-andro"
  },
  {
    "path": "examples/SampleApp/src/assets/icons/AccountCircle.tsx",
    "chars": 1370,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/AddComment.tsx",
    "chars": 918,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/AiIcon.tsx",
    "chars": 2447,
    "preview": "import Svg, { Path, Defs, LinearGradient, Stop } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-sv"
  },
  {
    "path": "examples/SampleApp/src/assets/icons/ArrowBack.tsx",
    "chars": 711,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/Block.tsx",
    "chars": 983,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/Builder.tsx",
    "chars": 1941,
    "preview": "import React from \"react\";\nimport Svg, { Path, SvgProps } from \"react-native-svg\";\n\n\nconst SvgComponent = ({ height, wid"
  },
  {
    "path": "examples/SampleApp/src/assets/icons/Call.tsx",
    "chars": 889,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/CallFill.tsx",
    "chars": 995,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleApp/src/assets/icons/Chat.tsx",
    "chars": 1103,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/Chatfill.tsx",
    "chars": 1291,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleApp/src/assets/icons/CheckFill.tsx",
    "chars": 867,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleApp/src/assets/icons/Close.tsx",
    "chars": 703,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/Delete.tsx",
    "chars": 1090,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/Flash.tsx",
    "chars": 658,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\n\nconst SvgComponent = ({"
  },
  {
    "path": "examples/SampleApp/src/assets/icons/Group.tsx",
    "chars": 1421,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/GroupAdd.tsx",
    "chars": 1406,
    "preview": "import type { SvgProps } from \"react-native-svg\";\nimport Svg, { Path } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/GroupFill.tsx",
    "chars": 1426,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleApp/src/assets/icons/Info.tsx",
    "chars": 1184,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/InfoIcon.tsx",
    "chars": 1184,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/Logout.tsx",
    "chars": 1011,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/Person.tsx",
    "chars": 1006,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/PersonAdd.tsx",
    "chars": 1360,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/PersonFill.tsx",
    "chars": 1072,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleApp/src/assets/icons/PersonOff.tsx",
    "chars": 1196,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/assets/icons/Reset.tsx",
    "chars": 816,
    "preview": "import React from \"react\";\nimport Svg, { Path, SvgProps } from \"react-native-svg\";\n\nconst SvgComponent = ({ height, widt"
  },
  {
    "path": "examples/SampleApp/src/assets/icons/UserEmptyIcon.tsx",
    "chars": 1651,
    "preview": "import type { SvgProps } from \"react-native-svg\";\nimport Svg, { G, Mask, Path, Rect } from \"react-native-svg\";\n\nconst Sv"
  },
  {
    "path": "examples/SampleApp/src/assets/icons/VideoCam.tsx",
    "chars": 637,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/components/AIAgent/AIAgents.tsx",
    "chars": 1962,
    "preview": "import {CometChat} from '@cometchat/chat-sdk-react-native';\nimport {CometChatUsers, useTheme} from '@cometchat/chat-uiki"
  },
  {
    "path": "examples/SampleApp/src/components/calls/CallDetailHelper.tsx",
    "chars": 4838,
    "preview": "import {CometChatTheme, CometChatUIKit} from '@cometchat/chat-uikit-react-native';\nimport {CallMade, CallMissedOutgoingF"
  },
  {
    "path": "examples/SampleApp/src/components/calls/CallDetails.tsx",
    "chars": 14521,
    "preview": "import React, {\n  JSX,\n  useCallback,\n  useEffect,\n  useMemo,\n  useRef,\n  useState,\n} from 'react';\nimport {View, Toucha"
  },
  {
    "path": "examples/SampleApp/src/components/calls/CallHistory.tsx",
    "chars": 7575,
    "preview": "import { CometChat } from '@cometchat/chat-sdk-react-native';\nimport {\n  CallingPackage,\n  CometChatListItem,\n  useTheme"
  },
  {
    "path": "examples/SampleApp/src/components/calls/CallLogDetailHeader.tsx",
    "chars": 6651,
    "preview": "import {CometChat} from '@cometchat/chat-sdk-react-native';\nimport {\n  useTheme,\n  CometChatAvatar,\n  CometChatCallButto"
  },
  {
    "path": "examples/SampleApp/src/components/calls/CallParticipants.tsx",
    "chars": 4272,
    "preview": "import { CometChatListItem, useTheme, useCometChatTranslation, localizedDateHelperInstance, useLocalizedDate, LocalizedD"
  },
  {
    "path": "examples/SampleApp/src/components/calls/CallRecordings.tsx",
    "chars": 6405,
    "preview": "import {CometChat} from '@cometchat/chat-sdk-react-native';\nimport {useTheme, CometChatListItem} from '@cometchat/chat-u"
  },
  {
    "path": "examples/SampleApp/src/components/calls/Calls.tsx",
    "chars": 3069,
    "preview": "import {CometChatCallLogs, useTheme, Icon} from '@cometchat/chat-uikit-react-native';\nimport {useFocusEffect, useNavigat"
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call-end-fill.tsx",
    "chars": 1100,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call-end.tsx",
    "chars": 969,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call-fill.tsx",
    "chars": 995,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call-log-fill.tsx",
    "chars": 1488,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call-log.tsx",
    "chars": 1406,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call-made-fill.tsx",
    "chars": 936,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call-made.tsx",
    "chars": 635,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call-missed-fill.tsx",
    "chars": 1082,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call-missed-outgoing-fill.tsx",
    "chars": 1102,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call-missed-outgoing.tsx",
    "chars": 732,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call-missed.tsx",
    "chars": 743,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call-received-fill.tsx",
    "chars": 934,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call-received.tsx",
    "chars": 636,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/call.tsx",
    "chars": 889,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/cancel-fill.tsx",
    "chars": 1430,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/index.tsx",
    "chars": 893,
    "preview": "export {default as Call} from './call';\nexport {default as CallEnd} from './call-end';\nexport {default as CallEndFill} f"
  },
  {
    "path": "examples/SampleApp/src/components/calls/icons/play-arrow.tsx",
    "chars": 614,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleApp/src/components/conversations/helper/GroupListeners.ts",
    "chars": 1896,
    "preview": "import {CometChat} from '@cometchat/chat-sdk-react-native';\nimport {CometChatUIKit} from '@cometchat/chat-uikit-react-na"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/AddMember.tsx",
    "chars": 8638,
    "preview": "import { CometChat } from '@cometchat/chat-sdk-react-native';\nimport React, {\n  useCallback,\n  useEffect,\n  useLayoutEff"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/AddMemberStyles.tsx",
    "chars": 1020,
    "preview": "import { StyleSheet } from \"react-native\";\n\nexport const styles = StyleSheet.create({\n    toastTextStyle: {\n      color:"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/BannedMember.tsx",
    "chars": 6747,
    "preview": "import React, { useCallback, useRef, useState } from 'react';\nimport {\n  View,\n  Text,\n  TouchableOpacity,\n  Modal,\n  To"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/BannedMemberStyles.tsx",
    "chars": 6221,
    "preview": "import {StyleSheet} from 'react-native';\nimport {\n  CometChatListStylesInterface,\n  CometChatTheme,\n} from '@cometchat/c"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/Conversations.tsx",
    "chars": 9842,
    "preview": "import { CometChat } from '@cometchat/chat-sdk-react-native';\nimport React, { useCallback, useContext, useRef, useState "
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/CreateConversation.tsx",
    "chars": 3942,
    "preview": "import React, { useState } from 'react';\nimport { View, Text, TouchableOpacity, StyleSheet } from 'react-native';\nimport"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/GroupInfo.tsx",
    "chars": 17808,
    "preview": "import React, { useEffect, useRef, useState } from 'react';\nimport {\n  View,\n  Text,\n  TouchableOpacity,\n  useWindowDime"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/GroupInfoStyles.tsx",
    "chars": 1544,
    "preview": "import {StyleSheet} from 'react-native';\n\nexport const styles = StyleSheet.create({\n  flexOne: {\n    flex: 1,\n  },\n  hea"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/Messages.tsx",
    "chars": 26622,
    "preview": "import React, {\n  useCallback,\n  useEffect,\n  useMemo,\n  useRef,\n  useState,\n} from 'react';\nimport {\n  TouchableOpacity"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/OngoingCallScreen.tsx",
    "chars": 3164,
    "preview": "import React, { useMemo, useRef } from 'react';\nimport { CometChat } from '@cometchat/chat-sdk-react-native';\nimport { n"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/SearchMessages.tsx",
    "chars": 5361,
    "preview": "import React, { useCallback, useEffect, useRef } from 'react';\nimport {\n  View,\n  StyleSheet,\n  BackHandler,\n  Platform,"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/ThreadView.tsx",
    "chars": 13156,
    "preview": "import React, {\n  useCallback,\n  useEffect,\n  useLayoutEffect,\n  useMemo,\n  useRef,\n  useState,\n} from 'react';\nimport {"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/TransferOwnership.tsx",
    "chars": 3889,
    "preview": "import React, {useState} from 'react';\nimport {View, Text, TouchableOpacity} from 'react-native';\nimport {RouteProp} fro"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/TransferOwnershipStyles.tsx",
    "chars": 704,
    "preview": "import {StyleSheet} from 'react-native';\n\nexport const styles = StyleSheet.create({\n  headerSection: {\n    paddingTop: 1"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/UserInfo.tsx",
    "chars": 14775,
    "preview": "import React, {useState, useEffect, useRef, FC} from 'react';\nimport {View, Text, TouchableOpacity, BackHandler} from 'r"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/UserInfoStyles.tsx",
    "chars": 1555,
    "preview": "import { StyleSheet } from \"react-native\";\n\nexport const styles = StyleSheet.create({\n    headerContainer: {\n      paddi"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/ViewMembers.tsx",
    "chars": 2034,
    "preview": "import React from 'react';\nimport { BackHandler, View } from 'react-native';\nimport {\n  CometChatGroupMembers,\n  useThem"
  },
  {
    "path": "examples/SampleApp/src/components/conversations/screens/qr_screen.tsx",
    "chars": 14409,
    "preview": "import React, { useEffect, useState, useRef } from 'react';\nimport {\n  View,\n  Text,\n  StyleSheet,\n  Alert,\n  TouchableO"
  },
  {
    "path": "examples/SampleApp/src/components/groups/GroupHelper.tsx",
    "chars": 13925,
    "preview": "import React, {useEffect, useState} from 'react';\nimport {\n  Dimensions,\n  View,\n  Text,\n  TouchableOpacity,\n  TextInput"
  },
  {
    "path": "examples/SampleApp/src/components/groups/Groups.tsx",
    "chars": 4900,
    "preview": "import React, { useCallback, useEffect, useState } from 'react';\nimport { View } from 'react-native';\nimport { useFocusE"
  },
  {
    "path": "examples/SampleApp/src/components/groups/styles.ts",
    "chars": 1386,
    "preview": "import {Platform, StyleSheet} from 'react-native';\n\nexport const styles = StyleSheet.create({\n  safeAreaContainer: {\n   "
  },
  {
    "path": "examples/SampleApp/src/components/login/AppCredentials.tsx",
    "chars": 15283,
    "preview": "import React, { useEffect, useMemo, useState } from 'react';\nimport {\n  View,\n  Text,\n  StyleSheet,\n  TextInput,\n  Touch"
  },
  {
    "path": "examples/SampleApp/src/components/login/SampleUser.tsx",
    "chars": 15449,
    "preview": "import React, { useEffect, useState } from 'react';\nimport {\n  View,\n  Text,\n  StyleSheet,\n  TouchableOpacity,\n  TextInp"
  },
  {
    "path": "examples/SampleApp/src/components/login/Skeleton.tsx",
    "chars": 4090,
    "preview": "import React, { useEffect, useRef, useState } from \"react\";\nimport { Animated, Dimensions, Easing, StyleSheet, useColorS"
  },
  {
    "path": "examples/SampleApp/src/components/users/Users.tsx",
    "chars": 1434,
    "preview": "import { CometChat } from '@cometchat/chat-sdk-react-native';\nimport { CometChatUsers, useTheme } from '@cometchat/chat-"
  },
  {
    "path": "examples/SampleApp/src/config/config.json",
    "chars": 2740,
    "preview": "{\n  \"builderId\": \"8c0c1c80-b08e-4960-80d4-686396119711\",\n  \"settings\": {\n    \"chatFeatures\": {\n      \"coreMessagingExper"
  },
  {
    "path": "examples/SampleApp/src/config/store.ts",
    "chars": 5073,
    "preview": "import { create } from 'zustand';\nimport config from './config.json';\nimport AsyncStorage from '@react-native-async-stor"
  },
  {
    "path": "examples/SampleApp/src/declarations.d.ts",
    "chars": 79,
    "preview": "declare module '*.png' {\n    const value: any;\n    export default value;\n  }\n  "
  },
  {
    "path": "examples/SampleApp/src/hooks/useGroupMemberStatus.ts",
    "chars": 3871,
    "preview": "import { useState, useEffect, useRef } from 'react';\n//@ts-ignore\nimport { CometChat } from '@cometchat/chat-sdk-react-n"
  },
  {
    "path": "examples/SampleApp/src/hooks/useIsKeyboardVisible.ts",
    "chars": 839,
    "preview": "import { useState, useEffect } from 'react';\nimport { Keyboard, KeyboardEvent } from 'react-native';\n\n/**\n * Custom hook"
  },
  {
    "path": "examples/SampleApp/src/navigation/AuthContext.tsx",
    "chars": 273,
    "preview": "import React from 'react';\n\nexport interface AuthContextProps {\n  isLoggedIn: boolean;\n  setIsLoggedIn: React.Dispatch<R"
  },
  {
    "path": "examples/SampleApp/src/navigation/BottomTabNavigator.tsx",
    "chars": 5082,
    "preview": "import React from 'react';\nimport {\n  StyleSheet,\n  Platform,\n  View,\n  TouchableWithoutFeedback,\n  Text,\n} from 'react-"
  },
  {
    "path": "examples/SampleApp/src/navigation/NavigationService.ts",
    "chars": 1029,
    "preview": "import {createNavigationContainerRef} from '@react-navigation/native';\nimport {RootStackParamList} from './types';\n\nexpo"
  },
  {
    "path": "examples/SampleApp/src/navigation/RootStackNavigator.tsx",
    "chars": 5872,
    "preview": "import React from 'react';\nimport { createNativeStackNavigator } from '@react-navigation/native-stack';\nimport { Navigat"
  },
  {
    "path": "examples/SampleApp/src/navigation/types.ts",
    "chars": 1572,
    "preview": "import { NavigatorScreenParams } from '@react-navigation/native';\nimport { CometChat } from '@cometchat/chat-sdk-react-n"
  },
  {
    "path": "examples/SampleApp/src/utils/ActiveChatContext.tsx",
    "chars": 908,
    "preview": "import React, { createContext, useContext, useState } from 'react';\n\ntype ActiveChat = {\n  type: 'user' | 'group';\n  id:"
  },
  {
    "path": "examples/SampleApp/src/utils/AppConstants.tsx",
    "chars": 977,
    "preview": "export const AppConstants = {\n  fcmProviderId: '',\n  apnsProviderId: '',\n  authKey: '',\n  appId: '',\n  region: '',\n  sub"
  },
  {
    "path": "examples/SampleApp/src/utils/CommonUtils.ts",
    "chars": 1398,
    "preview": "export class CommonUtils {\n  static clone<T extends any>(arg: T): T {\n    /*\n    If there are additional properties atta"
  },
  {
    "path": "examples/SampleApp/src/utils/TooltipMenu.tsx",
    "chars": 4501,
    "preview": "import { Icon, useTheme } from \"@cometchat/chat-uikit-react-native\";\nimport { JSX, useMemo } from \"react\";\nimport {\n  Co"
  },
  {
    "path": "examples/SampleApp/src/utils/helper.ts",
    "chars": 7774,
    "preview": "import {Platform, PermissionsAndroid} from 'react-native';\nimport {CometChat} from '@cometchat/chat-sdk-react-native';\ni"
  },
  {
    "path": "examples/SampleApp/src/utils/themeTypography.ts",
    "chars": 2517,
    "preview": "import { Platform } from 'react-native';\n\nexport type TypographyVariant = {\n  regular: { fontFamily: string };\n  medium:"
  },
  {
    "path": "examples/SampleApp/tsconfig.json",
    "chars": 134,
    "preview": "{\n  \"extends\": \"@react-native/typescript-config\",\n  \"include\": [\"**/*.ts\", \"**/*.tsx\"],\n  \"exclude\": [\"**/node_modules\","
  },
  {
    "path": "examples/SampleAppAI/.bundle/config",
    "chars": 59,
    "preview": "BUNDLE_PATH: \"vendor/bundle\"\nBUNDLE_FORCE_RUBY_PLATFORM: 1\n"
  },
  {
    "path": "examples/SampleAppAI/.eslintrc.js",
    "chars": 64,
    "preview": "module.exports = {\n  root: true,\n  extends: '@react-native',\n};\n"
  },
  {
    "path": "examples/SampleAppAI/.gitignore",
    "chars": 1085,
    "preview": "# OSX\n#\n.DS_Store\n\n# Xcode\n#\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.p"
  },
  {
    "path": "examples/SampleAppAI/.prettierrc.js",
    "chars": 91,
    "preview": "module.exports = {\n  arrowParens: 'avoid',\n  singleQuote: true,\n  trailingComma: 'all',\n};\n"
  },
  {
    "path": "examples/SampleAppAI/.watchmanconfig",
    "chars": 3,
    "preview": "{}\n"
  },
  {
    "path": "examples/SampleAppAI/App.tsx",
    "chars": 9644,
    "preview": "import { StatusBar, useColorScheme } from 'react-native';\nimport './gesture-handler';\nimport React, { useState, useEffec"
  },
  {
    "path": "examples/SampleAppAI/AppErrorBoundary.tsx",
    "chars": 2975,
    "preview": "import React from 'react';\nimport { View, Text, StyleSheet, Appearance, Button } from 'react-native';\n\ninterface State {"
  },
  {
    "path": "examples/SampleAppAI/Gemfile",
    "chars": 510,
    "preview": "source 'https://rubygems.org'\n\n# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version\nruby \""
  },
  {
    "path": "examples/SampleAppAI/README.md",
    "chars": 2537,
    "preview": "\n<p align=\"center\">\n  <img alt=\"CometChat\" src=\"https://assets.cometchat.io/website/images/logos/banner.png\">\n</p>\n\n# Re"
  },
  {
    "path": "examples/SampleAppAI/android/app/build.gradle",
    "chars": 4758,
    "preview": "apply plugin: \"com.android.application\"\napply plugin: \"org.jetbrains.kotlin.android\"\napply plugin: \"com.facebook.react\"\n"
  },
  {
    "path": "examples/SampleAppAI/android/app/proguard-rules.pro",
    "chars": 435,
    "preview": "# Add project specific ProGuard rules here.\n# By default, the flags in this file are appended to flags specified\n# in /u"
  },
  {
    "path": "examples/SampleAppAI/android/app/src/main/AndroidManifest.xml",
    "chars": 2095,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package='com.cometchat.ai.sampleapp'> \n\n    <uses-p"
  },
  {
    "path": "examples/SampleAppAI/android/app/src/main/java/com/cometchat/ai/sampleapp/MainActivity.kt",
    "chars": 1020,
    "preview": "package com.cometchat.ai.sampleapp\nimport android.os.Bundle\n\nimport com.facebook.react.ReactActivity\nimport com.facebook"
  },
  {
    "path": "examples/SampleAppAI/android/app/src/main/java/com/cometchat/ai/sampleapp/MainApplication.kt",
    "chars": 1388,
    "preview": "package com.cometchat.ai.sampleapp\n\nimport android.app.Application\nimport com.facebook.react.PackageList\nimport com.face"
  },
  {
    "path": "examples/SampleAppAI/android/app/src/main/res/drawable/rn_edit_text_material.xml",
    "chars": 1917,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Copyright (C) 2014 The Android Open Source Project\n\n     Licensed under the "
  },
  {
    "path": "examples/SampleAppAI/android/app/src/main/res/values/colors.xml",
    "chars": 156,
    "preview": "<resources>\n    <!-- Other color definitions -->\n    <color name=\"notification_color\">#FFFFFF</color> <!-- Replace with "
  },
  {
    "path": "examples/SampleAppAI/android/app/src/main/res/values/strings.xml",
    "chars": 76,
    "preview": "<resources>\n    <string name=\"app_name\">AI Sample App</string>\n</resources>\n"
  },
  {
    "path": "examples/SampleAppAI/android/app/src/main/res/values/styles.xml",
    "chars": 357,
    "preview": "<resources>\n\n    <!-- Base application theme. -->\n    <style name=\"AppTheme\" parent=\"Theme.AppCompat.DayNight.NoActionBa"
  },
  {
    "path": "examples/SampleAppAI/android/build.gradle",
    "chars": 595,
    "preview": "buildscript {\n    ext {\n        buildToolsVersion = \"36.0.0\"\n        minSdkVersion = 24\n        compileSdkVersion = 36\n "
  },
  {
    "path": "examples/SampleAppAI/android/gradle/wrapper/gradle-wrapper.properties",
    "chars": 253,
    "preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
  },
  {
    "path": "examples/SampleAppAI/android/gradle.properties",
    "chars": 1975,
    "preview": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will o"
  },
  {
    "path": "examples/SampleAppAI/android/gradlew",
    "chars": 8710,
    "preview": "#!/bin/sh\n\n#\n# Copyright © 2015-2021 the original authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "examples/SampleAppAI/android/gradlew.bat",
    "chars": 3035,
    "preview": "@REM Copyright (c) Meta Platforms, Inc. and affiliates.\n@REM\n@REM This source code is licensed under the MIT license fou"
  },
  {
    "path": "examples/SampleAppAI/android/settings.gradle",
    "chars": 340,
    "preview": "pluginManagement { includeBuild(\"../node_modules/@react-native/gradle-plugin\") }\nplugins { id(\"com.facebook.react.settin"
  },
  {
    "path": "examples/SampleAppAI/app.json",
    "chars": 64,
    "preview": "{\n  \"name\": \"ai_sample_app\",\n  \"displayName\": \"AI Sample App\"\n}\n"
  },
  {
    "path": "examples/SampleAppAI/babel.config.js",
    "chars": 72,
    "preview": "module.exports = {\n  presets: ['module:@react-native/babel-preset'],\n};\n"
  },
  {
    "path": "examples/SampleAppAI/gesture-handler.js",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "examples/SampleAppAI/gesture-handler.native.js",
    "chars": 102,
    "preview": "// Only import react-native-gesture-handler on native platforms\nimport 'react-native-gesture-handler';"
  },
  {
    "path": "examples/SampleAppAI/index.js",
    "chars": 940,
    "preview": "import {AppRegistry} from 'react-native';\nimport App from './App';\nimport {name as appName} from './app.json';\nimport Ap"
  },
  {
    "path": "examples/SampleAppAI/ios/.xcode.env",
    "chars": 482,
    "preview": "# This `.xcode.env` file is versioned and is used to source the environment\n# used when running script phases inside Xco"
  },
  {
    "path": "examples/SampleAppAI/ios/Podfile",
    "chars": 1540,
    "preview": "# Resolve react_native_pods.rb with node to allow for hoisting\nrequire Pod::Executable.execute_command('node', ['-p',\n  "
  },
  {
    "path": "examples/SampleAppAI/ios/SampleApp/AppDelegate.swift",
    "chars": 1236,
    "preview": "import UIKit\nimport React\nimport React_RCTAppDelegate\nimport ReactAppDependencyProvider\n\n@main\nclass AppDelegate: UIResp"
  },
  {
    "path": "examples/SampleAppAI/ios/SampleApp/Images.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 1346,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"CometChat_React_Native_40x40.png\",\n      \"idiom\" : \"iphone\",\n      \"scale\" : "
  },
  {
    "path": "examples/SampleAppAI/ios/SampleApp/Images.xcassets/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}\n"
  },
  {
    "path": "examples/SampleAppAI/ios/SampleApp/Info.plist",
    "chars": 1967,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "examples/SampleAppAI/ios/SampleApp/LaunchScreen.storyboard",
    "chars": 3685,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
  },
  {
    "path": "examples/SampleAppAI/ios/SampleApp/PrivacyInfo.xcprivacy",
    "chars": 986,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "examples/SampleAppAI/ios/SampleApp.xcodeproj/project.pbxproj",
    "chars": 20833,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "examples/SampleAppAI/ios/SampleApp.xcodeproj/xcshareddata/xcschemes/SampleApp.xcscheme",
    "chars": 3294,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1210\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "examples/SampleAppAI/ios/SampleApp.xcworkspace/contents.xcworkspacedata",
    "chars": 227,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:SampleApp.xcod"
  },
  {
    "path": "examples/SampleAppAI/ios/SampleApp.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "chars": 181,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "examples/SampleAppAI/jest.config.js",
    "chars": 48,
    "preview": "module.exports = {\n  preset: 'react-native',\n};\n"
  },
  {
    "path": "examples/SampleAppAI/metro.config.js",
    "chars": 301,
    "preview": "const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');\n\n/**\n * Metro configuration\n * https://"
  },
  {
    "path": "examples/SampleAppAI/package.json",
    "chars": 2078,
    "preview": "{\n  \"name\": \"ai_sample_app\",\n  \"version\": \"5.3.4\",\n  \"private\": true,\n  \"scripts\": {\n    \"android\": \"react-native run-an"
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/AccountCircle.tsx",
    "chars": 1370,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/AddComment.tsx",
    "chars": 918,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/ArrowBack.tsx",
    "chars": 711,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/Block.tsx",
    "chars": 983,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/Call.tsx",
    "chars": 889,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/CallFill.tsx",
    "chars": 995,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/Chat.tsx",
    "chars": 1103,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/Chatfill.tsx",
    "chars": 1291,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/CheckFill.tsx",
    "chars": 867,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/Close.tsx",
    "chars": 703,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/Delete.tsx",
    "chars": 1090,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/Group.tsx",
    "chars": 1421,
    "preview": "import Svg, { Path } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/GroupAdd.tsx",
    "chars": 1406,
    "preview": "import type { SvgProps } from \"react-native-svg\";\nimport Svg, { Path } from \"react-native-svg\";\nconst SvgComponent = ({ "
  },
  {
    "path": "examples/SampleAppAI/src/assets/icons/GroupFill.tsx",
    "chars": 1426,
    "preview": "import Svg, { Mask, Path, G } from \"react-native-svg\";\nimport type { SvgProps } from \"react-native-svg\";\nconst SvgCompon"
  }
]

// ... and 1101 more files (download for full content)

About this extraction

This page contains the full source code of the cometchat/cometchat-uikit-react-native GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1301 files (5.4 MB), approximately 1.5M tokens, and a symbol index with 1725 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!