@snowball-tech/fractal
Version:
Fractal's (Snowball's design system) React component library based on RadixUI and TailwindCSS
54 lines (53 loc) • 1.57 kB
TypeScript
import { Themes } from "../../constants.js";
import { Categories, EmojisSets, Locales, Positions, SearchPositions, SkinTone, SkinTonePositions, Version } from "./EmojiPicker.constants.js";
import { AllHTMLAttributes } from "react";
//#region src/components/EmojiPicker/EmojiPicker.types.d.ts
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;
}
//#endregion
export { Emoji, EmojiPickerProps, EmojiProps, EmojisCategory };
//# sourceMappingURL=EmojiPicker.types.d.ts.map