emoji-picker-react 4.5.5 → 4.5.7
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/dist/DomUtils/classNames.d.ts +3 -1
- package/dist/emoji-picker-react.cjs.development.css +20 -2
- package/dist/emoji-picker-react.cjs.development.js +14 -15
- package/dist/emoji-picker-react.cjs.development.js.map +1 -1
- package/dist/emoji-picker-react.cjs.production.min.js +1 -1
- package/dist/emoji-picker-react.cjs.production.min.js.map +1 -1
- package/dist/emoji-picker-react.esm.js +16 -17
- package/dist/emoji-picker-react.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/DomUtils/classNames.ts +3 -1
- package/src/DomUtils/selectors.ts +3 -3
- package/src/EmojiPickerReact.css +71 -14
- package/src/components/emoji/Emoji.css +4 -0
- package/src/components/footer/Preview.tsx +8 -7
- package/src/components/main/PickerMain.tsx +4 -1
- package/src/config/useConfig.ts +0 -5
- package/src/dataUtils/emojiSelectors.ts +7 -0
- package/dist/DomUtils/isDarkTheme.d.ts +0 -1
- package/src/DomUtils/isDarkTheme.ts +0 -7
package/package.json
CHANGED
|
@@ -16,7 +16,9 @@ export enum ClassNames {
|
|
|
16
16
|
open = 'epr-open',
|
|
17
17
|
vertical = 'epr-vertical',
|
|
18
18
|
horizontal = 'epr-horizontal',
|
|
19
|
-
variationPicker = 'epr-emoji-variation-picker'
|
|
19
|
+
variationPicker = 'epr-emoji-variation-picker',
|
|
20
|
+
darkTheme = 'epr-dark-theme',
|
|
21
|
+
autoTheme = 'epr-auto-theme'
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
export function asSelectors(...classNames: ClassNames[]): string {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DataEmoji } from '../dataUtils/DataTypes';
|
|
2
2
|
import {
|
|
3
3
|
emojiByUnified,
|
|
4
|
-
unifiedWithoutSkinTone
|
|
4
|
+
unifiedWithoutSkinTone
|
|
5
5
|
} from '../dataUtils/emojiSelectors';
|
|
6
6
|
|
|
7
7
|
import { asSelectors, ClassNames } from './classNames';
|
|
@@ -13,7 +13,7 @@ export const EmojiButtonSelector = `button${asSelectors(ClassNames.emoji)}`;
|
|
|
13
13
|
export const VisibleEmojiSelector = [
|
|
14
14
|
EmojiButtonSelector,
|
|
15
15
|
asSelectors(ClassNames.visible),
|
|
16
|
-
`:not(${asSelectors(ClassNames.hidden)})
|
|
16
|
+
`:not(${asSelectors(ClassNames.hidden)})`
|
|
17
17
|
].join('');
|
|
18
18
|
|
|
19
19
|
export function buttonFromTarget(
|
|
@@ -40,7 +40,7 @@ export function emojiFromElement(
|
|
|
40
40
|
return [];
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
const emoji = emojiByUnified(originalUnified);
|
|
43
|
+
const emoji = emojiByUnified(unified ?? originalUnified);
|
|
44
44
|
|
|
45
45
|
if (!emoji) {
|
|
46
46
|
return [];
|
package/src/EmojiPickerReact.css
CHANGED
|
@@ -71,21 +71,78 @@
|
|
|
71
71
|
--epr-preview-z-index: 6;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
.EmojiPickerReact
|
|
74
|
+
.EmojiPickerReact {
|
|
75
|
+
/* Dark Theme Variables */
|
|
75
76
|
--epr-dark: #000;
|
|
76
|
-
--epr-emoji-variation-picker-bg-color: var(--epr-dark);
|
|
77
|
-
--epr-highlight-color: #c0c0c0;
|
|
78
|
-
--epr-text-color: var(--epr-highlight-color);
|
|
79
|
-
--epr-hover-bg-color: #363636f6;
|
|
80
|
-
--epr-focus-bg-color: #474747;
|
|
81
|
-
--epr-search-input-bg-color: #333333;
|
|
82
|
-
--epr-category-label-bg-color: #222222e6;
|
|
83
|
-
--epr-picker-border-color: #151617;
|
|
84
|
-
--epr-bg-color: #222222;
|
|
85
|
-
--epr-search-input-bg-color-active: var(--epr-dark);
|
|
86
|
-
--epr-emoji-variation-indicator-color: #444;
|
|
87
|
-
--epr-category-icon-active-color: #3271b7;
|
|
88
|
-
--epr-skin-tone-picker-menu-color: #22222295;
|
|
77
|
+
--epr-dark-emoji-variation-picker-bg-color: var(--epr-dark);
|
|
78
|
+
--epr-dark-highlight-color: #c0c0c0;
|
|
79
|
+
--epr-dark-text-color: var(--epr-highlight-color);
|
|
80
|
+
--epr-dark-hover-bg-color: #363636f6;
|
|
81
|
+
--epr-dark-focus-bg-color: #474747;
|
|
82
|
+
--epr-dark-search-input-bg-color: #333333;
|
|
83
|
+
--epr-dark-category-label-bg-color: #222222e6;
|
|
84
|
+
--epr-dark-picker-border-color: #151617;
|
|
85
|
+
--epr-dark-bg-color: #222222;
|
|
86
|
+
--epr-dark-search-input-bg-color-active: var(--epr-dark);
|
|
87
|
+
--epr-dark-emoji-variation-indicator-color: #444;
|
|
88
|
+
--epr-dark-category-icon-active-color: #3271b7;
|
|
89
|
+
--epr-dark-skin-tone-picker-menu-color: #22222295;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@media (prefers-color-scheme: dark) {
|
|
93
|
+
/* Keep in sync with the section below */
|
|
94
|
+
.EmojiPickerReact.epr-auto-theme {
|
|
95
|
+
--epr-dark: var(--epr-dark-dark);
|
|
96
|
+
--epr-emoji-variation-picker-bg-color: var(
|
|
97
|
+
--epr-dark-emoji-variation-picker-bg-color
|
|
98
|
+
);
|
|
99
|
+
--epr-highlight-color: var(--epr-dark-highlight-color);
|
|
100
|
+
--epr-text-color: var(--epr-dark-text-color);
|
|
101
|
+
--epr-hover-bg-color: var(--epr-dark-hover-bg-color);
|
|
102
|
+
--epr-focus-bg-color: var(--epr-dark-focus-bg-color);
|
|
103
|
+
--epr-search-input-bg-color: var(--epr-dark-search-input-bg-color);
|
|
104
|
+
--epr-category-label-bg-color: var(--epr-dark-category-label-bg-color);
|
|
105
|
+
--epr-picker-border-color: var(--epr-dark-picker-border-color);
|
|
106
|
+
--epr-bg-color: var(--epr-dark-bg-color);
|
|
107
|
+
--epr-search-input-bg-color-active: var(
|
|
108
|
+
--epr-dark-search-input-bg-color-active
|
|
109
|
+
);
|
|
110
|
+
--epr-emoji-variation-indicator-color: var(
|
|
111
|
+
--epr-dark-emoji-variation-indicator-color
|
|
112
|
+
);
|
|
113
|
+
--epr-category-icon-active-color: var(
|
|
114
|
+
--epr-dark-category-icon-active-color
|
|
115
|
+
);
|
|
116
|
+
--epr-skin-tone-picker-menu-color: var(
|
|
117
|
+
--epr-dark-skin-tone-picker-menu-color
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.EmojiPickerReact.epr-dark-theme {
|
|
123
|
+
/* Keep in sync with the section above */
|
|
124
|
+
--epr-dark: var(--epr-dark-dark);
|
|
125
|
+
--epr-emoji-variation-picker-bg-color: var(
|
|
126
|
+
--epr-dark-emoji-variation-picker-bg-color
|
|
127
|
+
);
|
|
128
|
+
--epr-highlight-color: var(--epr-dark-highlight-color);
|
|
129
|
+
--epr-text-color: var(--epr-dark-text-color);
|
|
130
|
+
--epr-hover-bg-color: var(--epr-dark-hover-bg-color);
|
|
131
|
+
--epr-focus-bg-color: var(--epr-dark-focus-bg-color);
|
|
132
|
+
--epr-search-input-bg-color: var(--epr-dark-search-input-bg-color);
|
|
133
|
+
--epr-category-label-bg-color: var(--epr-dark-category-label-bg-color);
|
|
134
|
+
--epr-picker-border-color: var(--epr-dark-picker-border-color);
|
|
135
|
+
--epr-bg-color: var(--epr-dark-bg-color);
|
|
136
|
+
--epr-search-input-bg-color-active: var(
|
|
137
|
+
--epr-dark-search-input-bg-color-active
|
|
138
|
+
);
|
|
139
|
+
--epr-emoji-variation-indicator-color: var(
|
|
140
|
+
--epr-dark-emoji-variation-indicator-color
|
|
141
|
+
);
|
|
142
|
+
--epr-category-icon-active-color: var(--epr-dark-category-icon-active-color);
|
|
143
|
+
--epr-skin-tone-picker-menu-color: var(
|
|
144
|
+
--epr-dark-skin-tone-picker-menu-color
|
|
145
|
+
);
|
|
89
146
|
}
|
|
90
147
|
|
|
91
148
|
.EmojiPickerReact {
|
|
@@ -17,8 +17,8 @@ import Flex from '../Layout/Flex';
|
|
|
17
17
|
import Space from '../Layout/Space';
|
|
18
18
|
import { useEmojiVariationPickerState } from '../context/PickerContext';
|
|
19
19
|
import './Preview.css';
|
|
20
|
-
import { SkinTonePickerMenu } from '../header/SkinTonePicker';
|
|
21
20
|
import { ViewOnlyEmoji } from '../emoji/ViewOnlyEmoji';
|
|
21
|
+
import { SkinTonePickerMenu } from '../header/SkinTonePicker';
|
|
22
22
|
|
|
23
23
|
export function Preview() {
|
|
24
24
|
const previewConfig = usePreviewConfig();
|
|
@@ -46,16 +46,19 @@ export function PreviewBody() {
|
|
|
46
46
|
|
|
47
47
|
useEmojiPreviewEvents(previewConfig.showPreview, setPreviewEmoji);
|
|
48
48
|
|
|
49
|
-
const emoji = emojiByUnified(
|
|
49
|
+
const emoji = emojiByUnified(
|
|
50
|
+
previewEmoji?.unified ?? previewEmoji?.originalUnified
|
|
51
|
+
);
|
|
50
52
|
|
|
51
53
|
const show = emoji != null && previewEmoji != null;
|
|
52
54
|
|
|
53
55
|
return <PreviewContent />;
|
|
54
56
|
|
|
55
57
|
function PreviewContent() {
|
|
56
|
-
const defaultEmoji =
|
|
58
|
+
const defaultEmoji =
|
|
59
|
+
variationPickerEmoji ?? emojiByUnified(previewConfig.defaultEmoji);
|
|
57
60
|
if (!defaultEmoji) {
|
|
58
|
-
return null
|
|
61
|
+
return null;
|
|
59
62
|
}
|
|
60
63
|
const defaultText = variationPickerEmoji
|
|
61
64
|
? emojiName(variationPickerEmoji)
|
|
@@ -83,9 +86,7 @@ export function PreviewBody() {
|
|
|
83
86
|
) : null}
|
|
84
87
|
</div>
|
|
85
88
|
{show ? (
|
|
86
|
-
<div className="epr-preview-emoji-label">
|
|
87
|
-
{emojiName(emoji)}
|
|
88
|
-
</div>
|
|
89
|
+
<div className="epr-preview-emoji-label">{emojiName(emoji)}</div>
|
|
89
90
|
) : (
|
|
90
91
|
<div className="epr-preview-emoji-label">{defaultText}</div>
|
|
91
92
|
)}
|
|
@@ -40,11 +40,14 @@ function PickerRootElement({ children }: RootProps) {
|
|
|
40
40
|
width
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
+
|
|
44
|
+
|
|
43
45
|
return (
|
|
44
46
|
<aside
|
|
45
47
|
className={clsx(ClassNames.emojiPicker, 'epr-main', {
|
|
46
48
|
[ClassNames.searchActive]: searchModeActive,
|
|
47
|
-
|
|
49
|
+
[ClassNames.darkTheme]: theme === Theme.DARK,
|
|
50
|
+
[ClassNames.autoTheme]: theme === Theme.AUTO
|
|
48
51
|
})}
|
|
49
52
|
ref={PickerMainRef}
|
|
50
53
|
style={style}
|
package/src/config/useConfig.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isSystemDarkTheme } from '../DomUtils/isDarkTheme';
|
|
2
1
|
import { usePickerConfig } from '../components/context/PickerConfigContext';
|
|
3
2
|
import {
|
|
4
3
|
EmojiClickData,
|
|
@@ -73,10 +72,6 @@ export function usePreviewConfig(): PreviewConfig {
|
|
|
73
72
|
export function useThemeConfig(): Theme {
|
|
74
73
|
const { theme } = usePickerConfig();
|
|
75
74
|
|
|
76
|
-
if (theme === Theme.AUTO) {
|
|
77
|
-
return isSystemDarkTheme() ? Theme.DARK : Theme.LIGHT;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
75
|
return theme;
|
|
81
76
|
}
|
|
82
77
|
|
|
@@ -123,6 +123,13 @@ const allEmojisByUnified: {
|
|
|
123
123
|
setTimeout(() => {
|
|
124
124
|
allEmojis.reduce((allEmojis, Emoji) => {
|
|
125
125
|
allEmojis[emojiUnified(Emoji)] = Emoji;
|
|
126
|
+
|
|
127
|
+
if (emojiHasVariations(Emoji)) {
|
|
128
|
+
emojiVariations(Emoji).forEach(variation => {
|
|
129
|
+
allEmojis[variation] = Emoji;
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
|
|
126
133
|
return allEmojis;
|
|
127
134
|
}, allEmojisByUnified);
|
|
128
135
|
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function isSystemDarkTheme(): boolean;
|