emoji-picker-react 5.1.0 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -1
- package/dist/DomUtils/classNames.d.ts +0 -1
- package/dist/DomUtils/keyboardNavigation.d.ts +5 -1
- package/dist/DomUtils/selectors.d.ts +2 -2
- package/dist/config/defaultPickerConfiguration.d.ts +1 -1
- package/dist/data/index.js +1 -1
- package/dist/data/skinToneVariations.js +2 -2
- package/dist/esm/chunks/chunk-6LOWV5AK.mjs +144 -0
- package/dist/esm/chunks/chunk-DDDACPJK.mjs +6825 -0
- package/dist/esm/chunks/chunk-G75AG4FD.mjs +6 -0
- package/dist/esm/chunks/chunk-ZOAKI5M6.mjs +8025 -18
- package/dist/esm/chunks/deferredPicker-A6MWDDKH.mjs +113 -0
- package/dist/esm/chunks/emojis-VTEL5M5C.mjs +3 -6
- package/dist/esm/data.mjs +6 -9
- package/dist/esm/index.mjs +226 -333
- package/dist/esm/primitives/index.mjs +5 -65
- package/dist/hooks/preloadEmoji.d.ts +0 -4
- package/dist/hooks/searchHighlight.d.ts +3 -5
- package/dist/hooks/useCategoryHeight.d.ts +2 -1
- package/dist/hooks/useEmojiVirtualization.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/primitives/Root.d.ts +2 -2
- package/dist/primitives/index.d.mts +2 -2
- package/dist/primitives/index.d.ts +2 -2
- package/dist/primitives/index.js +1 -1
- package/dist/virtualization/virtualizationHelpers.d.ts +2 -0
- package/llms-full.txt +181 -21
- package/llms.txt +1 -0
- package/package.json +1 -1
- package/dist/esm/chunks/chunk-3NQHPTFV.mjs +0 -9
- package/dist/esm/chunks/chunk-FJVAS6PR.mjs +0 -214
- package/dist/esm/chunks/chunk-L4H5QY3X.mjs +0 -9509
- package/dist/esm/chunks/searchHighlight-7NH7OJ5Q.mjs +0 -134
package/dist/esm/index.mjs
CHANGED
|
@@ -1,48 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
EmojiStyle,
|
|
9
|
-
Empty,
|
|
10
|
-
List,
|
|
11
|
-
LoadError,
|
|
12
|
-
Loading,
|
|
13
|
-
MutableConfigProvider,
|
|
14
|
-
Panel,
|
|
15
|
-
Preview,
|
|
16
|
-
Reactions,
|
|
17
|
-
Relative,
|
|
18
|
-
Root,
|
|
19
|
-
Search,
|
|
20
|
-
SkinTone,
|
|
21
|
-
SkinTonePickerLocation,
|
|
22
|
-
SkinTones,
|
|
23
|
-
SuggestionMode,
|
|
24
|
-
Theme,
|
|
25
|
-
ViewOnlyEmoji,
|
|
26
|
-
Viewport,
|
|
27
|
-
commonInteractionStyles,
|
|
28
|
-
compareConfig,
|
|
29
|
-
cx,
|
|
30
|
-
defaultPickerTokens,
|
|
31
|
-
emojiByUnified,
|
|
32
|
-
isPickerBehaviorProp,
|
|
33
|
-
resolveEmojiStyle,
|
|
34
|
-
resolveSkinTonePickerLocation,
|
|
35
|
-
stylesheet,
|
|
36
|
-
useDefaultAppearance,
|
|
37
|
-
useDefineMutableConfig,
|
|
38
|
-
usePreviewConfig,
|
|
39
|
-
useSearchDisabledConfig,
|
|
40
|
-
useSkinTonePickerLocationConfig,
|
|
41
|
-
useSkinTonesDisabledConfig,
|
|
42
|
-
validColumns
|
|
43
|
-
} from "./chunks/chunk-L4H5QY3X.mjs";
|
|
44
|
-
import "./chunks/chunk-3NQHPTFV.mjs";
|
|
45
|
-
import "./chunks/chunk-FJVAS6PR.mjs";
|
|
2
|
+
import { Categories, CategoryNav, DEFAULT_PICKER_HEIGHT, DEFAULT_PICKER_WIDTH, DefaultPickerConfiguration, EmojiStyle, Empty, List, LoadError, Loading, MutableConfigProvider, Panel, Preview, Reactions, Relative, Root, Search, SkinTone, SkinTonePickerLocation, SkinTones, SuggestionMode, Theme, ViewOnlyEmoji, Viewport, commonInteractionStyles, compareConfig, cx, defaultPickerTokens, emojiByUnified, isPickerBehaviorProp, resolveEmojiStyle, resolveSkinTonePickerLocation, stylesheet, useDefaultAppearance, useDefineMutableConfig, usePreviewConfig, useSearchDisabledConfig, useSkinTonePickerLocationConfig, useSkinTonesDisabledConfig, validColumns } from "./chunks/chunk-DDDACPJK.mjs";
|
|
3
|
+
|
|
4
|
+
import "./chunks/chunk-G75AG4FD.mjs";
|
|
5
|
+
|
|
6
|
+
import "./chunks/chunk-6LOWV5AK.mjs";
|
|
7
|
+
|
|
46
8
|
import "./chunks/chunk-ZOAKI5M6.mjs";
|
|
47
9
|
|
|
48
10
|
// src/index.tsx
|
|
@@ -56,328 +18,259 @@ import * as React from "react";
|
|
|
56
18
|
|
|
57
19
|
// src/hooks/useShouldShowSkinTonePicker.ts
|
|
58
20
|
function useIsSkinToneInSearch() {
|
|
59
|
-
|
|
60
|
-
return skinTonePickerLocationConfig === "SEARCH" /* SEARCH */;
|
|
21
|
+
return "SEARCH" /* SEARCH */ === useSkinTonePickerLocationConfig();
|
|
61
22
|
}
|
|
23
|
+
|
|
62
24
|
function useIsSkinToneInPreview() {
|
|
63
|
-
|
|
64
|
-
return skinTonePickerLocationConfig === "PREVIEW" /* PREVIEW */;
|
|
25
|
+
return "PREVIEW" /* PREVIEW */ === useSkinTonePickerLocationConfig();
|
|
65
26
|
}
|
|
66
27
|
|
|
67
28
|
// src/components/header/Header.tsx
|
|
68
29
|
function Header() {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
{
|
|
76
|
-
className: cx(
|
|
77
|
-
"epr-header",
|
|
78
|
-
appearance && commonInteractionStyles.hiddenOnReactions
|
|
79
|
-
)
|
|
80
|
-
},
|
|
81
|
-
!searchDisabled && /* @__PURE__ */ React.createElement(Search, null, !skinTonesDisabled && toneInSearch && /* @__PURE__ */ React.createElement(SkinTone, null)),
|
|
82
|
-
/* @__PURE__ */ React.createElement(CategoryNav, null)
|
|
83
|
-
);
|
|
30
|
+
const appearance = useDefaultAppearance(), searchDisabled = useSearchDisabledConfig(), skinTonesDisabled = useSkinTonesDisabledConfig(), toneInSearch = useIsSkinToneInSearch();
|
|
31
|
+
/* @__PURE__ */
|
|
32
|
+
return React.createElement(Relative, {
|
|
33
|
+
className: cx("epr-header", appearance && commonInteractionStyles.hiddenOnReactions)
|
|
34
|
+
}, !searchDisabled && /* @__PURE__ */ React.createElement(Search, null, !skinTonesDisabled && toneInSearch && /* @__PURE__ */ React.createElement(SkinTone, null)),
|
|
35
|
+
/* @__PURE__ */ React.createElement(CategoryNav, null));
|
|
84
36
|
}
|
|
85
37
|
|
|
86
38
|
// src/components/main/defaultAppearance.tsx
|
|
87
39
|
import * as React2 from "react";
|
|
40
|
+
|
|
88
41
|
function defaultRootClassName(theme, className, unstyled) {
|
|
89
|
-
|
|
90
|
-
return cx(className);
|
|
91
|
-
}
|
|
92
|
-
return cx(
|
|
93
|
-
styles.main,
|
|
94
|
-
styles.baseVariables,
|
|
95
|
-
theme === "dark" /* DARK */ && styles.darkTheme,
|
|
96
|
-
theme === "auto" /* AUTO */ && styles.autoThemeDark,
|
|
97
|
-
className
|
|
98
|
-
);
|
|
42
|
+
return unstyled ? cx(className) : cx(styles.main, styles.baseVariables, "dark" /* DARK */ === theme && styles.darkTheme, "auto" /* AUTO */ === theme && styles.autoThemeDark, className);
|
|
99
43
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
44
|
+
|
|
45
|
+
function defaultRootStyle({width, height, style, columns}) {
|
|
46
|
+
return {
|
|
47
|
+
// v4-compatible default dimensions; consumer style and explicit
|
|
48
|
+
// width/height props both override them. With `columns`, the width
|
|
49
|
+
// fits the columns instead.
|
|
50
|
+
...void 0 === columns && {
|
|
51
|
+
width: getDimension(DEFAULT_PICKER_WIDTH)
|
|
52
|
+
},
|
|
53
|
+
height: getDimension(DEFAULT_PICKER_HEIGHT),
|
|
54
|
+
...style,
|
|
55
|
+
...void 0 !== width ? {
|
|
56
|
+
width: getDimension(width)
|
|
57
|
+
} : {},
|
|
58
|
+
...void 0 !== height ? {
|
|
59
|
+
height: getDimension(height)
|
|
60
|
+
} : {}
|
|
61
|
+
};
|
|
116
62
|
}
|
|
63
|
+
|
|
117
64
|
function getDimension(dimension) {
|
|
118
|
-
|
|
65
|
+
return "number" == typeof dimension ? `${dimension}px` : dimension;
|
|
119
66
|
}
|
|
67
|
+
|
|
120
68
|
var darkThemeBaseVariables = {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
141
|
-
var
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
69
|
+
"--epr-dark": "#000",
|
|
70
|
+
"--epr-dark-emoji-variation-picker-bg-color": "var(--epr-dark)",
|
|
71
|
+
"--epr-dark-highlight-color": "#c0c0c0",
|
|
72
|
+
"--epr-dark-text-color": "var(--epr-highlight-color)",
|
|
73
|
+
"--epr-dark-hover-bg-color": "#363636f6",
|
|
74
|
+
"--epr-dark-hover-bg-color-reduced-opacity": "#36363680",
|
|
75
|
+
"--epr-dark-focus-bg-color": "#474747",
|
|
76
|
+
"--epr-dark-search-input-bg-color": "#333333",
|
|
77
|
+
"--epr-dark-category-label-bg-color": "#222222e6",
|
|
78
|
+
"--epr-dark-picker-border-color": "#151617",
|
|
79
|
+
"--epr-dark-bg-color": "#222222",
|
|
80
|
+
"--epr-dark-reactions-bg-color": "#22222290",
|
|
81
|
+
"--epr-dark-search-input-bg-color-active": "var(--epr-dark)",
|
|
82
|
+
"--epr-dark-emoji-variation-indicator-color": "#444",
|
|
83
|
+
"--epr-dark-category-icon-active-color": "#6AA9DD",
|
|
84
|
+
"--epr-dark-category-icon-inactive-color": "#C0C0BF",
|
|
85
|
+
"--epr-dark-skin-tone-picker-menu-color": "#22222295",
|
|
86
|
+
"--epr-dark-skin-tone-outer-border-color": "var(--epr-dark-picker-border-color)",
|
|
87
|
+
"--epr-dark-skin-tone-inner-border-color": "#00000000"
|
|
88
|
+
}, DarkTheme = {
|
|
89
|
+
"--epr-emoji-variation-picker-bg-color": "var(--epr-dark-emoji-variation-picker-bg-color)",
|
|
90
|
+
"--epr-hover-bg-color-reduced-opacity": "var(--epr-dark-hover-bg-color-reduced-opacity)",
|
|
91
|
+
"--epr-highlight-color": "var(--epr-dark-highlight-color)",
|
|
92
|
+
"--epr-text-color": "var(--epr-dark-text-color)",
|
|
93
|
+
"--epr-hover-bg-color": "var(--epr-dark-hover-bg-color)",
|
|
94
|
+
"--epr-focus-bg-color": "var(--epr-dark-focus-bg-color)",
|
|
95
|
+
"--epr-search-input-bg-color": "var(--epr-dark-search-input-bg-color)",
|
|
96
|
+
"--epr-category-label-bg-color": "var(--epr-dark-category-label-bg-color)",
|
|
97
|
+
"--epr-picker-border-color": "var(--epr-dark-picker-border-color)",
|
|
98
|
+
"--epr-bg-color": "var(--epr-dark-bg-color)",
|
|
99
|
+
"--epr-reactions-bg-color": "var(--epr-dark-reactions-bg-color)",
|
|
100
|
+
"--epr-search-input-bg-color-active": "var(--epr-dark-search-input-bg-color-active)",
|
|
101
|
+
"--epr-emoji-variation-indicator-color": "var(--epr-dark-emoji-variation-indicator-color)",
|
|
102
|
+
"--epr-category-icon-active-color": "var(--epr-dark-category-icon-active-color)",
|
|
103
|
+
"--epr-category-icon-inactive-color": "var(--epr-dark-category-icon-inactive-color)",
|
|
104
|
+
"--epr-skin-tone-picker-menu-color": "var(--epr-dark-skin-tone-picker-menu-color)",
|
|
105
|
+
"--epr-skin-tone-outer-border-color": "var(--epr-dark-skin-tone-outer-border-color)",
|
|
106
|
+
"--epr-skin-tone-inner-border-color": "var(--epr-dark-skin-tone-inner-border-color)",
|
|
107
|
+
"--epr-dark-text-color": "var(--epr-highlight-color)",
|
|
108
|
+
"--epr-dark-hover-bg-color": "#363636f6",
|
|
109
|
+
"--epr-dark-hover-bg-color-reduced-opacity": "#36363680",
|
|
110
|
+
"--epr-dark-focus-bg-color": "#474747",
|
|
111
|
+
"--epr-dark-search-input-bg-color": "#333333",
|
|
112
|
+
"--epr-dark-category-label-bg-color": "#222222e6",
|
|
113
|
+
"--epr-dark-picker-border-color": "#151617",
|
|
114
|
+
"--epr-dark-bg-color": "#222222",
|
|
115
|
+
"--epr-dark-reactions-bg-color": "#22222290",
|
|
116
|
+
"--epr-dark-search-input-bg-color-active": "var(--epr-dark)",
|
|
117
|
+
"--epr-dark-emoji-variation-indicator-color": "#444",
|
|
118
|
+
"--epr-dark-category-icon-active-color": "#6AA9DD",
|
|
119
|
+
"--epr-dark-category-icon-inactive-color": "#C0C0BF",
|
|
120
|
+
"--epr-dark-skin-tone-picker-menu-color": "#22222295",
|
|
121
|
+
"--epr-dark-skin-tone-outer-border-color": "var(--epr-dark-picker-border-color)",
|
|
122
|
+
"--epr-dark-skin-tone-inner-border-color": "#00000000"
|
|
123
|
+
}, styles = /* @__PURE__ */ (() => stylesheet.create({
|
|
124
|
+
main: {
|
|
125
|
+
".": [ "epr-main", "EmojiPickerReact" /* emojiPicker */ ],
|
|
126
|
+
position: "relative",
|
|
127
|
+
display: "flex",
|
|
128
|
+
flexDirection: "column",
|
|
129
|
+
borderWidth: "1px",
|
|
130
|
+
borderStyle: "solid",
|
|
131
|
+
borderRadius: "var(--epr-picker-border-radius)",
|
|
132
|
+
borderColor: "var(--epr-picker-border-color)",
|
|
133
|
+
backgroundColor: "var(--epr-bg-color)",
|
|
134
|
+
overflow: "hidden",
|
|
135
|
+
transition: "height 0.3s ease-in-out, background-color 0.1s ease-in-out",
|
|
136
|
+
fontFamily: "var(--epr-font-family, inherit)",
|
|
137
|
+
"*": {
|
|
138
|
+
boxSizing: "border-box",
|
|
139
|
+
// Overridable without a specificity fight (v4 hard-coded sans-serif).
|
|
140
|
+
fontFamily: "inherit"
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
baseVariables: {
|
|
144
|
+
// Single-sourced from the public token preset: the default tree and
|
|
145
|
+
// bare-Root consumers share the same documented defaults. The private
|
|
146
|
+
// dark-theme values ride along (referenced only by the DarkTheme
|
|
147
|
+
// overrides below); they stay out of the shared preset so the
|
|
148
|
+
// primitives bundle keeps its separation marker scan clean.
|
|
149
|
+
"--": {
|
|
150
|
+
...defaultPickerTokens,
|
|
151
|
+
...darkThemeBaseVariables
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
// color-scheme makes native parts (scrollbars, the search field's
|
|
155
|
+
// controls) render dark too; without it they stay light on a dark picker.
|
|
156
|
+
autoThemeDark: {
|
|
157
|
+
".": "epr-auto-theme" /* autoTheme */ ,
|
|
158
|
+
"@media (prefers-color-scheme: dark)": {
|
|
159
|
+
"--": DarkTheme,
|
|
160
|
+
colorScheme: "dark"
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
darkTheme: {
|
|
164
|
+
".": "epr-dark-theme" /* darkTheme */ ,
|
|
165
|
+
"--": DarkTheme,
|
|
166
|
+
colorScheme: "dark"
|
|
211
167
|
}
|
|
212
|
-
|
|
213
|
-
darkTheme: {
|
|
214
|
-
".": "epr-dark-theme" /* darkTheme */,
|
|
215
|
-
"--": DarkTheme,
|
|
216
|
-
colorScheme: "dark"
|
|
217
|
-
}
|
|
218
|
-
}))();
|
|
168
|
+
}))(), NATIVE_ATTRIBUTES = /* @__PURE__ */ new Set([ "id", "title", "lang", "dir" ]);
|
|
219
169
|
|
|
220
|
-
// src/EmojiPickerReact.tsx
|
|
221
|
-
function EmojiPicker(props) {
|
|
222
|
-
const rootInput = props;
|
|
223
|
-
const {
|
|
224
|
-
theme: legacyTheme,
|
|
225
|
-
colorScheme,
|
|
226
|
-
width,
|
|
227
|
-
height,
|
|
228
|
-
className,
|
|
229
|
-
style,
|
|
230
|
-
unstyled,
|
|
231
|
-
components,
|
|
232
|
-
open,
|
|
233
|
-
searchDisabled = false,
|
|
234
|
-
skinTonesDisabled = false,
|
|
235
|
-
skinTonePickerLocation = "SEARCH" /* SEARCH */,
|
|
236
|
-
previewConfig,
|
|
237
|
-
...rest
|
|
238
|
-
} = rootInput;
|
|
239
|
-
const theme = colorScheme ?? legacyTheme;
|
|
240
|
-
const showPreview = previewConfig?.showPreview ?? true;
|
|
241
|
-
const resolvedLocation = resolveSkinTonePickerLocation(
|
|
242
|
-
skinTonePickerLocation,
|
|
243
|
-
searchDisabled,
|
|
244
|
-
showPreview
|
|
245
|
-
);
|
|
246
|
-
const defaultConfiguration = {
|
|
247
|
-
searchDisabled,
|
|
248
|
-
skinTonesDisabled,
|
|
249
|
-
skinTonePickerLocation: resolvedLocation,
|
|
250
|
-
previewConfig,
|
|
251
|
-
// Closed, as in v4, keeps the picker's state (skin tone, search,
|
|
252
|
-
// reactions mode) and renders nothing.
|
|
253
|
-
open: open !== false
|
|
254
|
-
};
|
|
255
|
-
const { behaviorProps, unknownProps } = pickBehaviorProps(rest);
|
|
256
|
-
useUnknownPropsWarning(unknownProps);
|
|
257
|
-
return /* @__PURE__ */ React3.createElement(DefaultPickerConfiguration.Provider, { value: defaultConfiguration }, /* @__PURE__ */ React3.createElement(
|
|
258
|
-
Root,
|
|
259
|
-
{
|
|
260
|
-
appearance: unstyled ? "none" : "default",
|
|
261
|
-
components,
|
|
262
|
-
...behaviorProps,
|
|
263
|
-
className: defaultRootClassName(theme, className, unstyled),
|
|
264
|
-
style: defaultRootStyle({
|
|
265
|
-
width,
|
|
266
|
-
height,
|
|
267
|
-
style,
|
|
268
|
-
columns: validColumns(props.columns)
|
|
269
|
-
})
|
|
270
|
-
},
|
|
271
|
-
/* @__PURE__ */ React3.createElement(Reactions, null),
|
|
272
|
-
/* @__PURE__ */ React3.createElement(Panel, null, CONTENT)
|
|
273
|
-
));
|
|
274
|
-
}
|
|
275
|
-
var NATIVE_ATTRIBUTES = /* @__PURE__ */ new Set([
|
|
276
|
-
"id",
|
|
277
|
-
"title",
|
|
278
|
-
"lang",
|
|
279
|
-
"dir"
|
|
280
|
-
]);
|
|
281
170
|
function isNativeAttribute(key) {
|
|
282
|
-
|
|
171
|
+
return NATIVE_ATTRIBUTES.has(key) || key.startsWith("aria-") || key.startsWith("data-");
|
|
283
172
|
}
|
|
173
|
+
|
|
284
174
|
function pickBehaviorProps(props) {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
} else {
|
|
292
|
-
unknown.push(key);
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
return { behaviorProps, unknownProps: unknown.join(", ") };
|
|
296
|
-
}
|
|
297
|
-
var useUnknownPropsWarning = process.env.NODE_ENV === "production" ? () => void 0 : useDevUnknownPropsWarning;
|
|
298
|
-
function useDevUnknownPropsWarning(unknownProps) {
|
|
299
|
-
React3.useEffect(() => {
|
|
300
|
-
if (unknownProps) {
|
|
301
|
-
console.warn(
|
|
302
|
-
`[emoji-picker-react] Ignoring unknown prop(s): ${unknownProps}. See docs/v5/MIGRATION.md for removed props.`
|
|
303
|
-
);
|
|
304
|
-
}
|
|
305
|
-
}, [unknownProps]);
|
|
175
|
+
const behaviorProps = {}, unknown = [], values = props;
|
|
176
|
+
for (const key of Object.keys(values)) isPickerBehaviorProp(key) || isNativeAttribute(key) ? behaviorProps[key] = values[key] : unknown.push(key);
|
|
177
|
+
return {
|
|
178
|
+
behaviorProps,
|
|
179
|
+
unknownProps: unknown.join(", ")
|
|
180
|
+
};
|
|
306
181
|
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
|
|
182
|
+
|
|
183
|
+
var useUnknownPropsWarning = "production" === process.env.NODE_ENV ? () => {} : function useDevUnknownPropsWarning(unknownProps) {
|
|
184
|
+
React3.useEffect((() => {
|
|
185
|
+
unknownProps && console.warn(`[emoji-picker-react] Ignoring unknown prop(s): ${unknownProps}. See docs/v5/MIGRATION.md for removed props.`);
|
|
186
|
+
}), [ unknownProps ]);
|
|
187
|
+
}, CONTENT = /* @__PURE__ */ React3.createElement((function ContentControl() {
|
|
188
|
+
const showPreview = usePreviewConfig().showPreview, skinTonesDisabled = useSkinTonesDisabledConfig(), toneInPreview = useIsSkinToneInPreview();
|
|
189
|
+
/* @__PURE__ */
|
|
190
|
+
return React3.createElement(React3.Fragment, null, /* @__PURE__ */ React3.createElement(Header, null), /* @__PURE__ */ React3.createElement(Viewport, null, /* @__PURE__ */ React3.createElement(List, null), /* @__PURE__ */ React3.createElement(Empty, null), /* @__PURE__ */ React3.createElement(Loading, null), /* @__PURE__ */ React3.createElement(LoadError, null)), showPreview && /* @__PURE__ */ React3.createElement(Preview, null, !skinTonesDisabled && toneInPreview && /* @__PURE__ */ React3.createElement(SkinTone, {
|
|
191
|
+
orientation: "vertical"
|
|
192
|
+
})));
|
|
193
|
+
})), EmojiPickerReact_default = /* @__PURE__ */ React3.memo((
|
|
194
|
+
// src/EmojiPickerReact.tsx
|
|
195
|
+
function EmojiPicker(props) {
|
|
196
|
+
const rootInput = props, {theme: legacyTheme, colorScheme, width, height, className, style, unstyled, components, open, searchDisabled = !1, skinTonesDisabled = !1, skinTonePickerLocation = "SEARCH" /* SEARCH */ , previewConfig, ...rest} = rootInput, theme = colorScheme ?? legacyTheme, defaultConfiguration = {
|
|
197
|
+
searchDisabled,
|
|
198
|
+
skinTonesDisabled,
|
|
199
|
+
skinTonePickerLocation: resolveSkinTonePickerLocation(skinTonePickerLocation, searchDisabled, previewConfig?.showPreview ?? !0),
|
|
200
|
+
previewConfig,
|
|
201
|
+
// Closed, as in v4, keeps the picker's state (skin tone, search,
|
|
202
|
+
// reactions mode) and renders nothing.
|
|
203
|
+
open: !1 !== open
|
|
204
|
+
}, {behaviorProps, unknownProps} = pickBehaviorProps(rest);
|
|
205
|
+
return useUnknownPropsWarning(unknownProps), /* @__PURE__ */ React3.createElement(DefaultPickerConfiguration.Provider, {
|
|
206
|
+
value: defaultConfiguration
|
|
207
|
+
}, /* @__PURE__ */ React3.createElement(Root, {
|
|
208
|
+
appearance: unstyled ? "none" : "default",
|
|
209
|
+
components,
|
|
210
|
+
...behaviorProps,
|
|
211
|
+
className: defaultRootClassName(theme, className, unstyled),
|
|
212
|
+
style: defaultRootStyle({
|
|
213
|
+
width,
|
|
214
|
+
height,
|
|
215
|
+
style,
|
|
216
|
+
columns: validColumns(props.columns)
|
|
217
|
+
})
|
|
218
|
+
},
|
|
219
|
+
/* @__PURE__ */ React3.createElement(Reactions, null),
|
|
220
|
+
/* @__PURE__ */ React3.createElement(Panel, null, CONTENT)));
|
|
221
|
+
}), compareConfig);
|
|
315
222
|
|
|
316
223
|
// src/components/ErrorBoundary.tsx
|
|
317
224
|
import * as React4 from "react";
|
|
225
|
+
|
|
318
226
|
var ErrorBoundary = class extends React4.Component {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
227
|
+
constructor(props) {
|
|
228
|
+
super(props), this.state = {
|
|
229
|
+
hasError: !1
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
static getDerivedStateFromError() {
|
|
233
|
+
return {
|
|
234
|
+
hasError: !0
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
componentDidCatch(error, errorInfo) {
|
|
238
|
+
console.error("Emoji Picker React failed to render:", error, errorInfo);
|
|
239
|
+
}
|
|
240
|
+
render() {
|
|
241
|
+
return this.state.hasError ? null : this.props.children;
|
|
332
242
|
}
|
|
333
|
-
return this.props.children;
|
|
334
|
-
}
|
|
335
243
|
};
|
|
336
244
|
|
|
337
245
|
// src/components/emoji/ExportedEmoji.tsx
|
|
338
246
|
import * as React5 from "react";
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
return null;
|
|
349
|
-
}
|
|
350
|
-
return /* @__PURE__ */ React5.createElement(
|
|
351
|
-
ViewOnlyEmoji,
|
|
352
|
-
{
|
|
353
|
-
unified,
|
|
354
|
-
size,
|
|
355
|
-
emojiStyle: resolveEmojiStyle(emojiStyle, emojiUrl || getEmojiUrl),
|
|
356
|
-
lazyLoad,
|
|
357
|
-
getEmojiUrl: emojiUrl ? () => emojiUrl : getEmojiUrl
|
|
358
|
-
}
|
|
359
|
-
);
|
|
247
|
+
|
|
248
|
+
function ExportedEmoji({unified, size = 32, emojiStyle, lazyLoad = !1, getEmojiUrl, emojiUrl}) {
|
|
249
|
+
return unified || emojiUrl || getEmojiUrl ? /* @__PURE__ */ React5.createElement(ViewOnlyEmoji, {
|
|
250
|
+
unified,
|
|
251
|
+
size,
|
|
252
|
+
emojiStyle: resolveEmojiStyle(emojiStyle, emojiUrl || getEmojiUrl),
|
|
253
|
+
lazyLoad,
|
|
254
|
+
getEmojiUrl: emojiUrl ? () => emojiUrl : getEmojiUrl
|
|
255
|
+
}) : null;
|
|
360
256
|
}
|
|
361
257
|
|
|
362
258
|
// src/index.tsx
|
|
363
259
|
function EmojiPicker2(props) {
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
260
|
+
const MutableConfigRef = useDefineMutableConfig({
|
|
261
|
+
onEmojiClick: props.onEmojiClick,
|
|
262
|
+
onReactionClick: props.onReactionClick,
|
|
263
|
+
onSkinToneChange: props.onSkinToneChange,
|
|
264
|
+
onSearchChange: props.onSearchChange,
|
|
265
|
+
onReactionsModeChange: props.onReactionsModeChange
|
|
266
|
+
});
|
|
267
|
+
/* @__PURE__ */
|
|
268
|
+
return React6.createElement(ErrorBoundary, null, /* @__PURE__ */ React6.createElement(MutableConfigProvider, {
|
|
269
|
+
value: MutableConfigRef,
|
|
270
|
+
inheritToRoot: !0
|
|
271
|
+
}, /* @__PURE__ */ React6.createElement(EmojiPickerReact_default, {
|
|
272
|
+
...props
|
|
273
|
+
})));
|
|
372
274
|
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
ExportedEmoji as Emoji,
|
|
376
|
-
EmojiStyle,
|
|
377
|
-
SkinTonePickerLocation,
|
|
378
|
-
SkinTones,
|
|
379
|
-
SuggestionMode,
|
|
380
|
-
Theme,
|
|
381
|
-
EmojiPicker2 as default,
|
|
382
|
-
emojiByUnified
|
|
383
|
-
};
|
|
275
|
+
|
|
276
|
+
export { Categories, ExportedEmoji as Emoji, EmojiStyle, SkinTonePickerLocation, SkinTones, SuggestionMode, Theme, EmojiPicker2 as default, emojiByUnified };
|