@snowball-tech/fractal
Version:
Fractal's (Snowball's design system) React component library based on RadixUI and PandaCSS
53 lines (50 loc) • 1.55 kB
TypeScript
import { AllHTMLAttributes } from 'react';
import { T as Themes } from '../constants-QFINMz1u.js';
import { EmojisSets, SkinTone, Categories, Locales, Positions, SearchPositions, SkinTonePositions, Version } from './EmojiPicker.constants.js';
type EmojisCategory = {
emojis: Array<Emoji>;
id: string;
name: string;
};
type Emoji = {
id: string;
name: string;
native: string;
shortcodes: string;
unified: string;
emoticons?: Array<string>;
keywords?: Array<string>;
};
interface EmojiPickerProps extends Omit<AllHTMLAttributes<HTMLDivElement>, 'onSelect'> {
set: `${EmojisSets}`;
skinTone: SkinTone;
autoFocus?: boolean;
categories?: Array<`${Categories}`>;
custom?: Array<EmojisCategory>;
customIcon?: Record<string, {
src: string;
} | {
svg: string;
}>;
exclude?: Array<string>;
frequentsRowNumber?: number;
locale?: `${Locales}`;
navPosition?: `${Positions}` | false;
perLine?: number;
previewPosition?: `${Positions}` | false;
search?: string;
searchPosition?: `${SearchPositions}` | false;
skinTonePosition?: `${SkinTonePositions}` | false;
theme?: Themes;
version?: Version;
onClickOutside?: () => void;
onSelect?: (emoji: Emoji) => void;
}
interface EmojiProps extends Omit<AllHTMLAttributes<HTMLDivElement>, 'size'> {
set: `${EmojisSets}`;
id?: string;
native?: string;
shortCode?: string;
skinTone?: SkinTone;
}
export type { Emoji, EmojiPickerProps, EmojiProps, EmojisCategory };