/**
* Emoji Domain - Barrel Export
*
* Global infrastructure domain for emoji selection and display
*
* Features:
* - Universal emoji picker component
* - Category-based emoji selection (smileys, animals, food, etc.)
* - Search functionality
* - Recently used emojis tracking
* - React hook for state management
* - Theme-aware styling
* - Validation utilities
*
* Dependencies:
* - rn-emoji-keyboard (emoji picker UI library)
*
* USAGE:
* ```typescript
* // Method 1: Using hook (recommended)
* import { useEmojiPicker, EmojiPicker } from '@umituz/react-native-emoji';
*
* const MyComponent = () => {
* const {
* isOpen,
* selectedEmoji,
* openPicker,
* closePicker,
* handleEmojiSelect,
* } = useEmojiPicker();
*
* return (
*
*
*
* {selectedEmoji || 'Select Emoji'}
*
*
*
*
*
* );
* };
*
* // Method 2: Manual state management
* import { EmojiPicker, type EmojiObject } from '@umituz/react-native-emoji';
*
* const MyComponent = () => {
* const [isOpen, setIsOpen] = useState(false);
* const [emoji, setEmoji] = useState('');
*
* const handleSelect = (emojiObject: EmojiObject) => {
* setEmoji(emojiObject.emoji);
* setIsOpen(false);
* };
*
* return (
*
* setIsOpen(true)}>
* {emoji || 'Select'}
*
*
* setIsOpen(false)}
* onEmojiSelected={handleSelect}
* />
*
* );
* };
*
* // Validation utilities
* import { EmojiUtils } from '@umituz/react-native-emoji';
*
* const isValid = EmojiUtils.isEmoji('๐'); // true
* const first = EmojiUtils.extractFirstEmoji('Hello ๐ World ๐'); // '๐'
* const length = EmojiUtils.getEmojiLength('๐จโ๐ฉโ๐งโ๐ฆ'); // 1 (handles multi-byte)
* ```
*
* REAL-WORLD EXAMPLE (Category Creation):
* ```typescript
* import { useEmojiPicker, EmojiPicker } from '@umituz/react-native-emoji';
* import { AtomicInput, AtomicText } from '@umituz/react-native-design-system';
*
* const AddCategoryScreen = () => {
* const [name, setName] = useState('');
* const {
* selectedEmoji,
* isOpen,
* openPicker,
* closePicker,
* handleEmojiSelect,
* } = useEmojiPicker();
*
* const handleSubmit = () => {
* if (!name.trim() || !selectedEmoji) {
* alert('Please fill all fields');
* return;
* }
*
* // Save category with emoji
* saveCategory({ name, emoji: selectedEmoji });
* };
*
* return (
*
*
*
*
*
* {selectedEmoji || 'Tap to select emoji'}
*
*
*
*
* Create Category
*
*
*
*
* );
* };
* ```
*
* EMOJI CATEGORIES:
* - ๐ Smileys & Emotion
* - ๐จ People & Body
* - ๐ถ Animals & Nature
* - ๐ Food & Drink
* - โ๏ธ Travel & Places
* - โฝ Activities
* - ๐ก Objects
* - โค๏ธ Symbols
* - ๐ Flags
*
* FEATURES:
* - 3600+ emojis across 9 categories
* - Full Unicode 15.0 support
* - Search by name or keywords
* - Recently used tracking (persisted)
* - Category change animations
* - Smooth scrolling and gestures
* - Theme-aware (light/dark mode)
* - Localization support
*/
export type { EmojiObject, EmojiPickerConfig, EmojiSelectCallback, EmojiPickerState, } from './domain/entities/Emoji';
export { EmojiCategory, EmojiUtils } from './domain/entities/Emoji';
export { useEmojiPicker } from './presentation/hooks/useEmojiPicker';
export type { UseEmojiPickerOptions, UseEmojiPickerReturn, } from './presentation/hooks/useEmojiPicker';