emoji-picker-react 4.6.8 → 4.6.9

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/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.6.8",
2
+ "version": "4.6.9",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -99,6 +99,6 @@
99
99
  "typescript": "^4.7.4"
100
100
  },
101
101
  "dependencies": {
102
- "flairup": "^0.0.25"
102
+ "flairup": "0.0.28"
103
103
  }
104
104
  }
@@ -19,3 +19,27 @@ export const commonStyles = stylesheet.create({
19
19
  visibility: 'hidden'
20
20
  }
21
21
  });
22
+
23
+ export const commonInteractionStyles = stylesheet.create({
24
+ '.epr-main:has(input:not(:placeholder-shown))': {
25
+ categoryBtn: {
26
+ ':hover': {
27
+ opacity: '1',
28
+ backgroundPositionY: 'var(--epr-category-navigation-button-size)'
29
+ }
30
+ }
31
+ },
32
+ '.EmojiPickerReact:not(.epr-search-active)': {
33
+ categoryBtn: {
34
+ ':hover': {
35
+ opacity: '1',
36
+ backgroundPositionY: 'var(--epr-category-navigation-button-size)'
37
+ },
38
+ // @ts-ignore
39
+ '&.epr-active': {
40
+ opacity: '1',
41
+ backgroundPositionY: 'var(--epr-category-navigation-button-size)'
42
+ }
43
+ }
44
+ }
45
+ });
@@ -194,19 +194,16 @@ const styles = stylesheet.create({
194
194
  },
195
195
  '.epr-auto-theme': {
196
196
  icnSearch: {
197
- // @ts-ignore
198
197
  '@media (prefers-color-scheme: dark)': {
199
198
  backgroundPositionY: '-20px'
200
199
  }
201
200
  },
202
201
  icnClearnSearch: {
203
- // @ts-ignore
204
202
  '@media (prefers-color-scheme: dark)': {
205
203
  backgroundPositionY: '-40px'
206
204
  }
207
205
  },
208
206
  btnClearSearch: {
209
- // @ts-ignore
210
207
  '@media (prefers-color-scheme: dark)': {
211
208
  // @ts-ignore
212
209
  ':hover > .epr-icn-clear-search': {
@@ -1,6 +1,9 @@
1
+ /* eslint-disable complexity */
2
+ import { cx } from 'flairup';
1
3
  import * as React from 'react';
2
4
 
3
5
  import { ClassNames } from '../../DomUtils/classNames';
6
+ import { stylesheet } from '../../Stylesheet/stylesheet';
4
7
  import { useSkinTonesDisabledConfig } from '../../config/useConfig';
5
8
  import skinToneVariations, {
6
9
  skinTonesNamed
@@ -17,9 +20,6 @@ import {
17
20
  useSkinToneFanOpenState
18
21
  } from '../context/PickerContext';
19
22
 
20
- import './SkinTonePicker.css';
21
- import { cx } from 'flairup';
22
-
23
23
  const ITEM_SIZE = 28;
24
24
 
25
25
  type Props = {
@@ -58,16 +58,18 @@ export function SkinTonePicker({
58
58
 
59
59
  return (
60
60
  <Relative
61
- className={cx('epr-skin-tones', direction, {
62
- [ClassNames.open]: isOpen
63
- })}
61
+ className={cx(
62
+ styles.skinTones,
63
+ vertical && styles.vertical,
64
+ isOpen && styles.open
65
+ )}
64
66
  style={
65
67
  vertical
66
68
  ? { flexBasis: expandedSize, height: expandedSize }
67
69
  : { flexBasis: expandedSize }
68
70
  }
69
71
  >
70
- <div className="epr-skin-tone-select" ref={SkinTonePickerRef}>
72
+ <div className={cx(styles.select)} ref={SkinTonePickerRef}>
71
73
  {skinToneVariations.map((skinToneVariation, i) => {
72
74
  const active = skinToneVariation === activeSkinTone;
73
75
  return (
@@ -90,9 +92,12 @@ export function SkinTonePicker({
90
92
  closeAllOpenToggles();
91
93
  }}
92
94
  key={skinToneVariation}
93
- className={cx(`epr-tone-${skinToneVariation}`, 'epr-tone', {
94
- [ClassNames.active]: active
95
- })}
95
+ className={cx(
96
+ `epr-tone-${skinToneVariation}`,
97
+ styles.tone,
98
+ !isOpen && styles.closedTone,
99
+ active && styles.active
100
+ )}
96
101
  tabIndex={isOpen ? 0 : -1}
97
102
  aria-pressed={active}
98
103
  aria-label={`Skin tone ${
@@ -110,3 +115,96 @@ export enum SkinTonePickerDirection {
110
115
  VERTICAL = ClassNames.vertical,
111
116
  HORIZONTAL = ClassNames.horizontal
112
117
  }
118
+
119
+ const styles = stylesheet.create({
120
+ skinTones: {
121
+ '.': 'epr-skin-tones',
122
+ '--': {
123
+ '--epr-skin-tone-size': '15px'
124
+ },
125
+ display: 'flex',
126
+ alignItems: 'center',
127
+ justifyContent: 'flex-end',
128
+ transition: 'all 0.3s ease-in-out',
129
+ padding: '10px 0'
130
+ },
131
+ vertical: {
132
+ padding: '5px',
133
+ alignItems: 'flex-end',
134
+ flexDirection: 'column',
135
+ borderRadius: '6px',
136
+ border: '1px solid var(--epr-bg-color)'
137
+ },
138
+ open: {
139
+ // @ts-ignore
140
+ backdropFilter: 'blur(5px)',
141
+ background: 'var(--epr-skin-tone-picker-menu-color)',
142
+ // @ts-ignore
143
+ '&.epr-active:after': {
144
+ content: '',
145
+ position: 'absolute',
146
+ top: '-2px',
147
+ left: '-2px',
148
+ right: '-2px',
149
+ bottom: '-2px',
150
+ borderRadius: '5px',
151
+ border: '1px solid var(--epr-active-skin-tone-indicator-border-color)'
152
+ }
153
+ },
154
+ select: {
155
+ '.': 'epr-skin-tone-select',
156
+ position: 'relative',
157
+ width: 'var(--epr-skin-tone-size)',
158
+ height: 'var(--epr-skin-tone-size)',
159
+ // @ts-ignore
160
+ '> button': {
161
+ width: 'var(--epr-skin-tone-size)',
162
+ display: 'block',
163
+ cursor: 'pointer',
164
+ borderRadius: '4px',
165
+ height: 'var(--epr-skin-tone-size)',
166
+ position: 'absolute',
167
+ right: '0',
168
+ transition: 'transform 0.3s ease-in-out, opacity 0.35s ease-in-out',
169
+ zIndex: '0',
170
+ boxShadow: '0 0 0 0px var(--epr-active-skin-hover-color)'
171
+ }
172
+ },
173
+ closedTone: {
174
+ opacity: '0',
175
+ zIndex: '0'
176
+ },
177
+ active: {
178
+ '.': 'epr-active',
179
+ zIndex: '1',
180
+ opacity: '1'
181
+ },
182
+ tone: {
183
+ '.': 'epr-tone',
184
+ ':hover': {
185
+ boxShadow: '0 0 0 3px var(--epr-active-skin-hover-color)'
186
+ },
187
+ ':focus': {
188
+ boxShadow: '0 0 0 3px var(--epr-focus-bg-color)'
189
+ },
190
+ // @ts-ignore
191
+ '&.epr-tone-neutral': {
192
+ backgroundColor: '#ffd225'
193
+ },
194
+ '&.epr-tone-1f3fb': {
195
+ backgroundColor: '#ffdfbd'
196
+ },
197
+ '&.epr-tone-1f3fc': {
198
+ backgroundColor: '#e9c197'
199
+ },
200
+ '&.epr-tone-1f3fd': {
201
+ backgroundColor: '#c88e62'
202
+ },
203
+ '&.epr-tone-1f3fe': {
204
+ backgroundColor: '#a86637'
205
+ },
206
+ '&.epr-tone-1f3ff': {
207
+ backgroundColor: '#60463a'
208
+ }
209
+ }
210
+ });
@@ -1,80 +1,3 @@
1
1
  aside.EmojiPickerReact .epr-cat-btn {
2
2
  background-image: svg-load(./svg/CategoryNav.svg);
3
3
  }
4
-
5
- aside.EmojiPickerReact.epr-main:has(input:not(:placeholder-shown))
6
- .epr-category-nav
7
- > button.epr-cat-btn:hover {
8
- opacity: 1;
9
- background-position-y: var(--epr-category-navigation-button-size);
10
- }
11
- .EmojiPickerReact:not(.epr-search-active)
12
- .epr-category-nav
13
- > button.epr-cat-btn:hover,
14
- .EmojiPickerReact:not(.epr-search-active)
15
- .epr-category-nav
16
- > button.epr-cat-btn.epr-active {
17
- opacity: 1;
18
- background-position-y: var(--epr-category-navigation-button-size);
19
- }
20
-
21
- .EmojiPickerReact.epr-dark-theme .epr-category-nav > button.epr-cat-btn {
22
- background-position-y: calc(var(--epr-category-navigation-button-size) * 2);
23
- }
24
-
25
- aside.EmojiPickerReact.epr-main:has(input:placeholder-shown) .epr-category-nav {
26
- background-position-y: calc(var(--epr-category-navigation-button-size) * 3);
27
- }
28
- .EmojiPickerReact.epr-dark-theme:not(.epr-search-active)
29
- .epr-category-nav
30
- > button.epr-cat-btn:hover,
31
- .EmojiPickerReact.epr-dark-theme:not(.epr-search-active)
32
- .epr-category-nav
33
- > button.epr-cat-btn.epr-active {
34
- background-position-y: calc(var(--epr-category-navigation-button-size) * 3);
35
- }
36
-
37
- @media (prefers-color-scheme: dark) {
38
- .EmojiPickerReact.epr-auto-theme .epr-category-nav > button.epr-cat-btn {
39
- background-position-y: calc(var(--epr-category-navigation-button-size) * 2);
40
- }
41
- .EmojiPickerReact.epr-auto-theme:not(.epr-search-active)
42
- .epr-category-nav
43
- > button.epr-cat-btn:hover,
44
- .EmojiPickerReact.epr-auto-theme:not(.epr-search-active)
45
- .epr-category-nav
46
- > button.epr-cat-btn.epr-active {
47
- background-position-y: calc(var(--epr-category-navigation-button-size) * 3);
48
- }
49
- }
50
-
51
- .EmojiPickerReact button.epr-cat-btn.epr-icn-suggested {
52
- background-position-x: calc(var(--epr-category-navigation-button-size) * -8);
53
- }
54
- .EmojiPickerReact button.epr-cat-btn.epr-icn-custom {
55
- background-position-x: calc(var(--epr-category-navigation-button-size) * -9);
56
- }
57
- .EmojiPickerReact button.epr-cat-btn.epr-icn-activities {
58
- background-position-x: calc(var(--epr-category-navigation-button-size) * -4);
59
- }
60
- .EmojiPickerReact button.epr-cat-btn.epr-icn-animals_nature {
61
- background-position-x: calc(var(--epr-category-navigation-button-size) * -1);
62
- }
63
- .EmojiPickerReact button.epr-cat-btn.epr-icn-flags {
64
- background-position-x: calc(var(--epr-category-navigation-button-size) * -7);
65
- }
66
- .EmojiPickerReact button.epr-cat-btn.epr-icn-food_drink {
67
- background-position-x: calc(var(--epr-category-navigation-button-size) * -2);
68
- }
69
- .EmojiPickerReact button.epr-cat-btn.epr-icn-objects {
70
- background-position-x: calc(var(--epr-category-navigation-button-size) * -5);
71
- }
72
- .EmojiPickerReact button.epr-cat-btn.epr-icn-smileys_people {
73
- background-position-x: 0px;
74
- }
75
- .EmojiPickerReact button.epr-cat-btn.epr-icn-symbols {
76
- background-position-x: calc(var(--epr-category-navigation-button-size) * -6);
77
- }
78
- .EmojiPickerReact button.epr-cat-btn.epr-icn-travel_places {
79
- background-position-x: calc(var(--epr-category-navigation-button-size) * -3);
80
- }
@@ -4,7 +4,10 @@ import { useState } from 'react';
4
4
  import './CategoryNavigation.css';
5
5
 
6
6
  import { ClassNames } from '../../DomUtils/classNames';
7
- import { stylesheet } from '../../Stylesheet/stylesheet';
7
+ import {
8
+ commonInteractionStyles,
9
+ stylesheet
10
+ } from '../../Stylesheet/stylesheet';
8
11
  import {
9
12
  categoryFromCategoryConfig,
10
13
  categoryNameFromCategoryConfig
@@ -47,9 +50,14 @@ export function CategoryNavigation() {
47
50
  return (
48
51
  <Button
49
52
  tabIndex={isSearchMode || isActiveCategory ? -1 : 0}
50
- className={cx(styles.catBtn, `epr-icn-${category}`, {
51
- [ClassNames.active]: isActiveCategory
52
- })}
53
+ className={cx(
54
+ styles.catBtn,
55
+ commonInteractionStyles.categoryBtn,
56
+ `epr-icn-${category}`,
57
+ {
58
+ [ClassNames.active]: isActiveCategory
59
+ }
60
+ )}
53
61
  key={category}
54
62
  onClick={() => {
55
63
  setActiveCategory(category);
@@ -107,6 +115,88 @@ const styles = stylesheet.create({
107
115
  bottom: '-2px',
108
116
  border: '2px solid var(--epr-category-icon-active-color)',
109
117
  borderRadius: '50%'
118
+ },
119
+ // @ts-ignore
120
+ '&.epr-icn-suggested': {
121
+ backgroundPositionX:
122
+ 'calc(var(--epr-category-navigation-button-size) * -8)'
123
+ },
124
+ '&.epr-icn-custom': {
125
+ backgroundPositionX:
126
+ 'calc(var(--epr-category-navigation-button-size) * -9)'
127
+ },
128
+ '&.epr-icn-activities': {
129
+ backgroundPositionX:
130
+ 'calc(var(--epr-category-navigation-button-size) * -4)'
131
+ },
132
+ '&.epr-icn-animals_nature': {
133
+ backgroundPositionX:
134
+ 'calc(var(--epr-category-navigation-button-size) * -1)'
135
+ },
136
+ '&.epr-icn-flags': {
137
+ backgroundPositionX:
138
+ 'calc(var(--epr-category-navigation-button-size) * -7)'
139
+ },
140
+ '&.epr-icn-food_drink': {
141
+ backgroundPositionX:
142
+ 'calc(var(--epr-category-navigation-button-size) * -2)'
143
+ },
144
+ '&.epr-icn-objects': {
145
+ backgroundPositionX:
146
+ 'calc(var(--epr-category-navigation-button-size) * -5)'
147
+ },
148
+ '&.epr-icn-smileys_people': {
149
+ backgroundPositionX: '0px'
150
+ },
151
+ '&.epr-icn-symbols': {
152
+ backgroundPositionX:
153
+ 'calc(var(--epr-category-navigation-button-size) * -6)'
154
+ },
155
+ '&.epr-icn-travel_places': {
156
+ backgroundPositionX:
157
+ 'calc(var(--epr-category-navigation-button-size) * -3)'
158
+ }
159
+ },
160
+ '.epr-dark-theme': {
161
+ catBtn: {
162
+ backgroundPositionY:
163
+ 'calc(var(--epr-category-navigation-button-size) * 2)'
164
+ }
165
+ },
166
+ '.epr-auto-theme': {
167
+ catBtn: {
168
+ '@media (prefers-color-scheme: dark)': {
169
+ backgroundPositionY:
170
+ 'calc(var(--epr-category-navigation-button-size) * 2)'
171
+ }
172
+ }
173
+ },
174
+ '.epr-auto-theme:not(.epr-search-active)': {
175
+ catBtn: {
176
+ '@media (prefers-color-scheme: dark)': {
177
+ ':hover': {
178
+ backgroundPositionY:
179
+ 'calc(var(--epr-category-navigation-button-size) * 3)'
180
+ },
181
+ // @ts-ignore
182
+ '&.epr-active': {
183
+ backgroundPositionY:
184
+ 'calc(var(--epr-category-navigation-button-size) * 3)'
185
+ }
186
+ }
187
+ }
188
+ },
189
+ '.epr-dark-theme:not(.epr-search-active)': {
190
+ catBtn: {
191
+ ':hover': {
192
+ backgroundPositionY:
193
+ 'calc(var(--epr-category-navigation-button-size) * 3)'
194
+ },
195
+ // @ts-ignore
196
+ '&.epr-active': {
197
+ backgroundPositionY:
198
+ 'calc(var(--epr-category-navigation-button-size) * 3)'
199
+ }
110
200
  }
111
201
  }
112
202
  });
@@ -1,103 +0,0 @@
1
- .EmojiPickerReact .epr-skin-tones {
2
- --epr-skin-tone-size: 15px;
3
- }
4
-
5
- .EmojiPickerReact .epr-skin-tones {
6
- display: flex;
7
- align-items: center;
8
- justify-content: flex-end;
9
- transition: all 0.3s ease-in-out;
10
- padding: 10px 0;
11
- }
12
-
13
- .EmojiPickerReact .epr-skin-tones.epr-vertical {
14
- padding: 5px;
15
- align-items: flex-end;
16
- flex-direction: column;
17
- border-radius: 6px;
18
- border: 1px solid var(--epr-bg-color);
19
- }
20
-
21
- .EmojiPickerReact .epr-skin-tones.epr-vertical.epr-open {
22
- border: 1px solid var(--epr-picker-border-color);
23
- backdrop-filter: blur(5px);
24
- background: var(--epr-skin-tone-picker-menu-color);
25
- }
26
-
27
- .EmojiPickerReact .epr-skin-tone-select {
28
- position: relative;
29
- width: var(--epr-skin-tone-size);
30
- height: var(--epr-skin-tone-size);
31
- }
32
-
33
- .EmojiPickerReact .epr-skin-tones.epr-open .epr-tone {
34
- transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
35
- }
36
-
37
- .EmojiPickerReact .epr-skin-tones:not(.epr-open) .epr-tone {
38
- z-index: 0;
39
- opacity: 0;
40
- }
41
-
42
- .EmojiPickerReact .epr-skin-tones .epr-tone.epr-active {
43
- z-index: 1;
44
- }
45
-
46
- .EmojiPickerReact .epr-skin-tones .epr-tone {
47
- display: block;
48
- cursor: pointer;
49
- border-radius: 4px;
50
- height: var(--epr-skin-tone-size);
51
- width: var(--epr-skin-tone-size);
52
- position: absolute;
53
- right: 0;
54
- transition: transform 0.3s ease-in-out, opacity 0.5s ease-in-out;
55
- z-index: 1;
56
- box-shadow: 0 0 0 0px var(--epr-active-skin-hover-color);
57
- }
58
-
59
- .EmojiPickerReact .epr-skin-tones .epr-tone:hover {
60
- box-shadow: 0 0 0 3px var(--epr-active-skin-hover-color);
61
- }
62
-
63
- .EmojiPickerReact .epr-skin-tones .epr-tone:focus {
64
- box-shadow: 0 0 0 3px var(--epr-focus-bg-color);
65
- }
66
-
67
- .EmojiPickerReact
68
- .epr-skin-tones.epr-open
69
- .epr-skin-tone-select
70
- .epr-tone.epr-active:after {
71
- content: '';
72
- position: absolute;
73
- top: -2px;
74
- left: -2px;
75
- right: -2px;
76
- bottom: -2px;
77
- border-radius: 5px;
78
- border: 1px solid var(--epr-active-skin-tone-indicator-border-color);
79
- }
80
-
81
- .EmojiPickerReact .epr-skin-tones .epr-tone.epr-active {
82
- opacity: 1;
83
- z-index: 1;
84
- }
85
-
86
- .EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-neutral {
87
- background-color: #ffd225;
88
- }
89
- .EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fb {
90
- background-color: #ffdfbd;
91
- }
92
- .EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fc {
93
- background-color: #e9c197;
94
- }
95
- .EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fd {
96
- background-color: #c88e62;
97
- }
98
- .EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fe {
99
- background-color: #a86637;
100
- }
101
- .EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3ff {
102
- background-color: #60463a;
103
- }