@chayns-components/emoji-input 5.0.0-beta.576 → 5.0.0-beta.578

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.
Files changed (206) hide show
  1. package/lib/cjs/api/item-storage/get.js +36 -0
  2. package/lib/cjs/api/item-storage/get.js.map +1 -0
  3. package/lib/cjs/api/item-storage/put.js +41 -0
  4. package/lib/cjs/api/item-storage/put.js.map +1 -0
  5. package/lib/cjs/components/emoji-input/EmojiInput.js +466 -0
  6. package/lib/cjs/components/emoji-input/EmojiInput.js.map +1 -0
  7. package/lib/cjs/components/emoji-input/EmojiInput.styles.js +141 -0
  8. package/lib/cjs/components/emoji-input/EmojiInput.styles.js.map +1 -0
  9. package/lib/cjs/components/emoji-input/prefix-element/PrefixElement.js +45 -0
  10. package/lib/cjs/components/emoji-input/prefix-element/PrefixElement.js.map +1 -0
  11. package/lib/cjs/components/emoji-input/prefix-element/PrefixElement.styles.js +65 -0
  12. package/lib/cjs/components/emoji-input/prefix-element/PrefixElement.styles.js.map +1 -0
  13. package/lib/cjs/components/emoji-picker/EmojiPicker.js +49 -0
  14. package/lib/cjs/components/emoji-picker/EmojiPicker.js.map +1 -0
  15. package/lib/cjs/components/emoji-picker/EmojiPicker.styles.js +23 -0
  16. package/lib/cjs/components/emoji-picker/EmojiPicker.styles.js.map +1 -0
  17. package/lib/cjs/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.js +102 -0
  18. package/lib/cjs/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.js.map +1 -0
  19. package/lib/cjs/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.js +25 -0
  20. package/lib/cjs/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.js.map +1 -0
  21. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.js +241 -0
  22. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.js.map +1 -0
  23. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.js +69 -0
  24. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.js.map +1 -0
  25. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.js +144 -0
  26. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.js.map +1 -0
  27. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.styles.js +24 -0
  28. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.styles.js.map +1 -0
  29. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.js +130 -0
  30. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.js.map +1 -0
  31. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.js +99 -0
  32. package/lib/cjs/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.js.map +1 -0
  33. package/lib/cjs/components/emoji-picker-popup/EmojiPickerPopup.js +157 -0
  34. package/lib/cjs/components/emoji-picker-popup/EmojiPickerPopup.js.map +1 -0
  35. package/lib/cjs/components/emoji-picker-popup/EmojiPickerPopup.styles.js +92 -0
  36. package/lib/cjs/components/emoji-picker-popup/EmojiPickerPopup.styles.js.map +1 -0
  37. package/lib/cjs/constants/alignment.js +19 -0
  38. package/lib/cjs/constants/alignment.js.map +1 -0
  39. package/lib/cjs/constants/categories.js +19 -0
  40. package/lib/cjs/constants/categories.js.map +1 -0
  41. package/lib/cjs/constants/emoji.js +3804 -0
  42. package/lib/cjs/constants/emoji.js.map +1 -0
  43. package/lib/cjs/constants/externalServerUrl.js +8 -0
  44. package/lib/cjs/constants/externalServerUrl.js.map +1 -0
  45. package/lib/cjs/constants/regex.js +14 -0
  46. package/lib/cjs/constants/regex.js.map +1 -0
  47. package/lib/cjs/hooks/emojiHistory.js +89 -0
  48. package/lib/cjs/hooks/emojiHistory.js.map +1 -0
  49. package/lib/cjs/index.js +42 -0
  50. package/lib/cjs/index.js.map +1 -0
  51. package/lib/cjs/types/api.js.map +1 -0
  52. package/lib/cjs/types/category.js.map +1 -0
  53. package/lib/cjs/utils/emoji.js +105 -0
  54. package/lib/cjs/utils/emoji.js.map +1 -0
  55. package/lib/cjs/utils/environment.js +33 -0
  56. package/lib/cjs/utils/environment.js.map +1 -0
  57. package/lib/cjs/utils/font.js +17 -0
  58. package/lib/cjs/utils/font.js.map +1 -0
  59. package/lib/cjs/utils/insert.js +98 -0
  60. package/lib/cjs/utils/insert.js.map +1 -0
  61. package/lib/cjs/utils/number.js +17 -0
  62. package/lib/cjs/utils/number.js.map +1 -0
  63. package/lib/cjs/utils/selection.js +214 -0
  64. package/lib/cjs/utils/selection.js.map +1 -0
  65. package/lib/cjs/utils/text.js +57 -0
  66. package/lib/cjs/utils/text.js.map +1 -0
  67. package/lib/esm/api/item-storage/get.js.map +1 -0
  68. package/lib/esm/api/item-storage/put.js.map +1 -0
  69. package/lib/esm/components/emoji-input/EmojiInput.js.map +1 -0
  70. package/lib/esm/components/emoji-input/EmojiInput.styles.js.map +1 -0
  71. package/lib/esm/components/emoji-input/prefix-element/PrefixElement.js.map +1 -0
  72. package/lib/esm/components/emoji-input/prefix-element/PrefixElement.styles.js.map +1 -0
  73. package/lib/esm/components/emoji-picker/EmojiPicker.js.map +1 -0
  74. package/lib/esm/components/emoji-picker/EmojiPicker.styles.js.map +1 -0
  75. package/lib/esm/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.js.map +1 -0
  76. package/lib/esm/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.js.map +1 -0
  77. package/lib/esm/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.js.map +1 -0
  78. package/lib/esm/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.js.map +1 -0
  79. package/lib/esm/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.js.map +1 -0
  80. package/lib/esm/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.styles.js.map +1 -0
  81. package/lib/esm/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.js.map +1 -0
  82. package/lib/esm/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.js.map +1 -0
  83. package/lib/esm/components/emoji-picker-popup/EmojiPickerPopup.js.map +1 -0
  84. package/lib/esm/components/emoji-picker-popup/EmojiPickerPopup.styles.js.map +1 -0
  85. package/lib/esm/constants/alignment.js.map +1 -0
  86. package/lib/esm/constants/categories.js.map +1 -0
  87. package/lib/esm/constants/emoji.js.map +1 -0
  88. package/lib/esm/constants/externalServerUrl.js.map +1 -0
  89. package/lib/esm/constants/regex.js.map +1 -0
  90. package/lib/esm/hooks/emojiHistory.js.map +1 -0
  91. package/lib/esm/index.js.map +1 -0
  92. package/lib/esm/types/api.js +2 -0
  93. package/lib/esm/types/api.js.map +1 -0
  94. package/lib/esm/types/category.js +2 -0
  95. package/lib/esm/types/category.js.map +1 -0
  96. package/lib/esm/utils/emoji.js.map +1 -0
  97. package/lib/esm/utils/environment.js.map +1 -0
  98. package/lib/esm/utils/font.js.map +1 -0
  99. package/lib/esm/utils/insert.js.map +1 -0
  100. package/lib/esm/utils/number.js.map +1 -0
  101. package/lib/esm/utils/selection.js.map +1 -0
  102. package/lib/esm/utils/text.js.map +1 -0
  103. package/lib/{components → types/components}/emoji-input/EmojiInput.styles.d.ts +1 -1
  104. package/lib/{components → types/components}/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.d.ts +1 -1
  105. package/lib/{components → types/components}/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.d.ts +1 -1
  106. package/package.json +17 -7
  107. package/lib/api/item-storage/get.js.map +0 -1
  108. package/lib/api/item-storage/put.js.map +0 -1
  109. package/lib/components/emoji-input/EmojiInput.js.map +0 -1
  110. package/lib/components/emoji-input/EmojiInput.styles.js.map +0 -1
  111. package/lib/components/emoji-input/prefix-element/PrefixElement.js.map +0 -1
  112. package/lib/components/emoji-input/prefix-element/PrefixElement.styles.js.map +0 -1
  113. package/lib/components/emoji-picker/EmojiPicker.js.map +0 -1
  114. package/lib/components/emoji-picker/EmojiPicker.styles.js.map +0 -1
  115. package/lib/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.js.map +0 -1
  116. package/lib/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.js.map +0 -1
  117. package/lib/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.js.map +0 -1
  118. package/lib/components/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.js.map +0 -1
  119. package/lib/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.js.map +0 -1
  120. package/lib/components/emoji-picker/emoji-picker-emojis/emoji/Emoji.styles.js.map +0 -1
  121. package/lib/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.js.map +0 -1
  122. package/lib/components/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.js.map +0 -1
  123. package/lib/components/emoji-picker-popup/EmojiPickerPopup.js.map +0 -1
  124. package/lib/components/emoji-picker-popup/EmojiPickerPopup.styles.js.map +0 -1
  125. package/lib/constants/alignment.js.map +0 -1
  126. package/lib/constants/categories.js.map +0 -1
  127. package/lib/constants/emoji-de-DE.json +0 -3827
  128. package/lib/constants/emoji.js.map +0 -1
  129. package/lib/constants/externalServerUrl.js.map +0 -1
  130. package/lib/constants/regex.js.map +0 -1
  131. package/lib/hooks/emojiHistory.js.map +0 -1
  132. package/lib/index.js.map +0 -1
  133. package/lib/types/api.js.map +0 -1
  134. package/lib/types/category.js.map +0 -1
  135. package/lib/utils/emoji.js.map +0 -1
  136. package/lib/utils/environment.js.map +0 -1
  137. package/lib/utils/font.js.map +0 -1
  138. package/lib/utils/insert.js.map +0 -1
  139. package/lib/utils/number.js.map +0 -1
  140. package/lib/utils/selection.js.map +0 -1
  141. package/lib/utils/text.js.map +0 -1
  142. /package/lib/{types → cjs/types}/api.js +0 -0
  143. /package/lib/{types → cjs/types}/category.js +0 -0
  144. /package/lib/{api → esm/api}/item-storage/get.js +0 -0
  145. /package/lib/{api → esm/api}/item-storage/put.js +0 -0
  146. /package/lib/{components → esm/components}/emoji-input/EmojiInput.js +0 -0
  147. /package/lib/{components → esm/components}/emoji-input/EmojiInput.styles.js +0 -0
  148. /package/lib/{components → esm/components}/emoji-input/prefix-element/PrefixElement.js +0 -0
  149. /package/lib/{components → esm/components}/emoji-input/prefix-element/PrefixElement.styles.js +0 -0
  150. /package/lib/{components → esm/components}/emoji-picker/EmojiPicker.js +0 -0
  151. /package/lib/{components → esm/components}/emoji-picker/EmojiPicker.styles.js +0 -0
  152. /package/lib/{components → esm/components}/emoji-picker/emoji-picker-categories/EmojiPickerCategories.js +0 -0
  153. /package/lib/{components → esm/components}/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.js +0 -0
  154. /package/lib/{components → esm/components}/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.js +0 -0
  155. /package/lib/{components → esm/components}/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.js +0 -0
  156. /package/lib/{components → esm/components}/emoji-picker/emoji-picker-emojis/emoji/Emoji.js +0 -0
  157. /package/lib/{components → esm/components}/emoji-picker/emoji-picker-emojis/emoji/Emoji.styles.js +0 -0
  158. /package/lib/{components → esm/components}/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.js +0 -0
  159. /package/lib/{components → esm/components}/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.styles.js +0 -0
  160. /package/lib/{components → esm/components}/emoji-picker-popup/EmojiPickerPopup.js +0 -0
  161. /package/lib/{components → esm/components}/emoji-picker-popup/EmojiPickerPopup.styles.js +0 -0
  162. /package/lib/{constants → esm/constants}/alignment.js +0 -0
  163. /package/lib/{constants → esm/constants}/categories.js +0 -0
  164. /package/lib/{constants → esm/constants}/emoji.js +0 -0
  165. /package/lib/{constants → esm/constants}/externalServerUrl.js +0 -0
  166. /package/lib/{constants → esm/constants}/regex.js +0 -0
  167. /package/lib/{hooks → esm/hooks}/emojiHistory.js +0 -0
  168. /package/lib/{index.js → esm/index.js} +0 -0
  169. /package/lib/{utils → esm/utils}/emoji.js +0 -0
  170. /package/lib/{utils → esm/utils}/environment.js +0 -0
  171. /package/lib/{utils → esm/utils}/font.js +0 -0
  172. /package/lib/{utils → esm/utils}/insert.js +0 -0
  173. /package/lib/{utils → esm/utils}/number.js +0 -0
  174. /package/lib/{utils → esm/utils}/selection.js +0 -0
  175. /package/lib/{utils → esm/utils}/text.js +0 -0
  176. /package/lib/{api → types/api}/item-storage/get.d.ts +0 -0
  177. /package/lib/{api → types/api}/item-storage/put.d.ts +0 -0
  178. /package/lib/{components → types/components}/emoji-input/EmojiInput.d.ts +0 -0
  179. /package/lib/{components → types/components}/emoji-input/prefix-element/PrefixElement.d.ts +0 -0
  180. /package/lib/{components → types/components}/emoji-input/prefix-element/PrefixElement.styles.d.ts +0 -0
  181. /package/lib/{components → types/components}/emoji-picker/EmojiPicker.d.ts +0 -0
  182. /package/lib/{components → types/components}/emoji-picker/EmojiPicker.styles.d.ts +0 -0
  183. /package/lib/{components → types/components}/emoji-picker/emoji-picker-categories/EmojiPickerCategories.d.ts +0 -0
  184. /package/lib/{components → types/components}/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.d.ts +0 -0
  185. /package/lib/{components → types/components}/emoji-picker/emoji-picker-emojis/EmojiPickerEmojis.styles.d.ts +0 -0
  186. /package/lib/{components → types/components}/emoji-picker/emoji-picker-emojis/emoji/Emoji.d.ts +0 -0
  187. /package/lib/{components → types/components}/emoji-picker/emoji-picker-emojis/emoji/Emoji.styles.d.ts +0 -0
  188. /package/lib/{components → types/components}/emoji-picker/emoji-picker-emojis/emoji/skin-tone-popup/SkinTonePopup.d.ts +0 -0
  189. /package/lib/{components → types/components}/emoji-picker-popup/EmojiPickerPopup.d.ts +0 -0
  190. /package/lib/{components → types/components}/emoji-picker-popup/EmojiPickerPopup.styles.d.ts +0 -0
  191. /package/lib/{constants → types/constants}/alignment.d.ts +0 -0
  192. /package/lib/{constants → types/constants}/categories.d.ts +0 -0
  193. /package/lib/{constants → types/constants}/emoji.d.ts +0 -0
  194. /package/lib/{constants → types/constants}/externalServerUrl.d.ts +0 -0
  195. /package/lib/{constants → types/constants}/regex.d.ts +0 -0
  196. /package/lib/{hooks → types/hooks}/emojiHistory.d.ts +0 -0
  197. /package/lib/{index.d.ts → types/index.d.ts} +0 -0
  198. /package/lib/types/{api.d.ts → types/api.d.ts} +0 -0
  199. /package/lib/types/{category.d.ts → types/category.d.ts} +0 -0
  200. /package/lib/{utils → types/utils}/emoji.d.ts +0 -0
  201. /package/lib/{utils → types/utils}/environment.d.ts +0 -0
  202. /package/lib/{utils → types/utils}/font.d.ts +0 -0
  203. /package/lib/{utils → types/utils}/insert.d.ts +0 -0
  204. /package/lib/{utils → types/utils}/number.d.ts +0 -0
  205. /package/lib/{utils → types/utils}/selection.d.ts +0 -0
  206. /package/lib/{utils → types/utils}/text.d.ts +0 -0
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledMotionEmojiInputProgress = exports.StyledMotionEmojiInputEditor = exports.StyledEmojiInputRightWrapper = exports.StyledEmojiInputLabel = exports.StyledEmojiInputContent = exports.StyledEmojiInput = void 0;
7
+ var _framerMotion = require("framer-motion");
8
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
+ var _font = require("../../utils/font");
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ const StyledEmojiInput = exports.StyledEmojiInput = _styledComponents.default.div`
13
+ align-items: center;
14
+ background-color: ${({
15
+ theme,
16
+ $shouldChangeColor
17
+ }) => theme.colorMode === 'classic' || $shouldChangeColor ? theme['000'] : theme['100']};
18
+ border-radius: 3px;
19
+ display: flex;
20
+ min-height: 42px;
21
+ opacity: ${({
22
+ $isDisabled
23
+ }) => $isDisabled ? 0.5 : 1};
24
+ pointer-events: ${({
25
+ $isDisabled
26
+ }) => $isDisabled ? 'none' : 'initial'};
27
+ position: relative;
28
+ transition: opacity 0.3s ease;
29
+ `;
30
+ const StyledMotionEmojiInputProgress = exports.StyledMotionEmojiInputProgress = (0, _styledComponents.default)(_framerMotion.motion.div)`
31
+ background-color: ${({
32
+ theme
33
+ }) => theme['402']};
34
+ height: 100%;
35
+ position: absolute;
36
+ z-index: 2;
37
+ border-radius: 3px;
38
+ `;
39
+ const StyledEmojiInputContent = exports.StyledEmojiInputContent = _styledComponents.default.div`
40
+ align-items: end;
41
+ border: 1px solid rgba(160, 160, 160, 0.3);
42
+ border-radius: 3px;
43
+ display: flex;
44
+ flex: 1 1 auto;
45
+ gap: 10px;
46
+ padding: 8px 10px;
47
+ z-index: 3;
48
+
49
+ ${({
50
+ $isRightElementGiven
51
+ }) => $isRightElementGiven && (0, _styledComponents.css)`
52
+ border-top-right-radius: 0;
53
+ border-bottom-right-radius: 0;
54
+ border-right-width: 0;
55
+ padding-right: 0;
56
+ `}
57
+ `;
58
+ const StyledMotionEmojiInputEditor = exports.StyledMotionEmojiInputEditor = (0, _styledComponents.default)(_framerMotion.motion.div)`
59
+ color: ${({
60
+ theme,
61
+ $shouldShowContent
62
+ }) => $shouldShowContent ? theme.text : theme['100']};
63
+ flex: 1 1 auto;
64
+ font-family: ${_font.getFontFamily};
65
+ overflow-y: scroll;
66
+ overflow-x: hidden;
67
+ word-break: break-word;
68
+
69
+ // This fixes a bug where the field is not editable in certain browsers.
70
+ // This is for example the case on iOS 15 or older.
71
+ -webkit-user-modify: read-write;
72
+ -webkit-user-select: text;
73
+
74
+ lc_mention,
75
+ nerIgnore,
76
+ nerReplace {
77
+ font-weight: bold;
78
+
79
+ span {
80
+ opacity: 0.5;
81
+ }
82
+ }
83
+
84
+ // Styles for custom scrollbar
85
+ ${({
86
+ $browser,
87
+ theme
88
+ }) => $browser === 'firefox' ? (0, _styledComponents.css)`
89
+ scrollbar-color: rgba(${theme['text-rgb']}, 0.15) transparent;
90
+ scrollbar-width: thin;
91
+ ` : (0, _styledComponents.css)`
92
+ &::-webkit-scrollbar {
93
+ width: 5px;
94
+ }
95
+
96
+ &::-webkit-scrollbar-track {
97
+ background-color: transparent;
98
+ }
99
+
100
+ &::-webkit-scrollbar-button {
101
+ background-color: transparent;
102
+ height: 5px;
103
+ }
104
+
105
+ &::-webkit-scrollbar-thumb {
106
+ background-color: rgba(${theme['text-rgb']}, 0.15);
107
+ border-radius: 20px;
108
+ }
109
+ `}
110
+ `;
111
+ const StyledEmojiInputRightWrapper = exports.StyledEmojiInputRightWrapper = _styledComponents.default.div`
112
+ align-self: stretch;
113
+ border-bottom-right-radius: 3px;
114
+ border-top-right-radius: 3px;
115
+ flex: 0 0 auto;
116
+ overflow: hidden;
117
+ `;
118
+ const StyledEmojiInputLabel = exports.StyledEmojiInputLabel = _styledComponents.default.label`
119
+ color: rgba(${({
120
+ theme
121
+ }) => theme['text-rgb']}, 0.45);
122
+ left: ${({
123
+ $offsetWidth
124
+ }) => $offsetWidth ? `${$offsetWidth + 10}px` : '10px'};
125
+ top: 12px;
126
+ align-items: baseline;
127
+ display: flex;
128
+ flex: 0 0 auto;
129
+ gap: 4px;
130
+ line-height: 1.3;
131
+ pointer-events: none;
132
+ position: absolute;
133
+ user-select: none;
134
+ white-space: nowrap;
135
+ max-width: ${({
136
+ $maxWidth,
137
+ $offsetWidth
138
+ }) => `${$maxWidth - ($offsetWidth ?? 0)}px`};
139
+ overflow: hidden;
140
+ `;
141
+ //# sourceMappingURL=EmojiInput.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiInput.styles.js","names":["_framerMotion","require","_styledComponents","_interopRequireWildcard","_font","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","StyledEmojiInput","exports","styled","div","theme","$shouldChangeColor","colorMode","$isDisabled","StyledMotionEmojiInputProgress","motion","StyledEmojiInputContent","$isRightElementGiven","css","StyledMotionEmojiInputEditor","$shouldShowContent","text","getFontFamily","$browser","StyledEmojiInputRightWrapper","StyledEmojiInputLabel","label","$offsetWidth","$maxWidth"],"sources":["../../../../src/components/emoji-input/EmojiInput.styles.ts"],"sourcesContent":["import type { WithTheme } from '@chayns-components/core';\nimport type { Browser } from 'detect-browser';\nimport { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\nimport { getFontFamily } from '../../utils/font';\n\ntype StyledEmojiInputProps = WithTheme<{ $isDisabled?: boolean; $shouldChangeColor: boolean }>;\n\nexport const StyledEmojiInput = styled.div<StyledEmojiInputProps>`\n align-items: center;\n background-color: ${({ theme, $shouldChangeColor }: StyledEmojiInputProps) =>\n theme.colorMode === 'classic' || $shouldChangeColor ? theme['000'] : theme['100']};\n border-radius: 3px;\n display: flex;\n min-height: 42px;\n opacity: ${({ $isDisabled }) => ($isDisabled ? 0.5 : 1)};\n pointer-events: ${({ $isDisabled }) => ($isDisabled ? 'none' : 'initial')};\n position: relative;\n transition: opacity 0.3s ease;\n`;\n\ntype StyledMotionEmojiInputProgressProps = WithTheme<unknown>;\n\nexport const StyledMotionEmojiInputProgress = styled(\n motion.div,\n)<StyledMotionEmojiInputProgressProps>`\n background-color: ${({ theme }: StyledMotionEmojiInputProgressProps) => theme['402']};\n height: 100%;\n position: absolute;\n z-index: 2;\n border-radius: 3px;\n`;\n\ntype StyledEmojiInputContentProps = {\n $isRightElementGiven: boolean;\n};\n\nexport const StyledEmojiInputContent = styled.div<StyledEmojiInputContentProps>`\n align-items: end;\n border: 1px solid rgba(160, 160, 160, 0.3);\n border-radius: 3px;\n display: flex;\n flex: 1 1 auto;\n gap: 10px;\n padding: 8px 10px;\n z-index: 3;\n\n ${({ $isRightElementGiven }) =>\n $isRightElementGiven &&\n css`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right-width: 0;\n padding-right: 0;\n `}\n`;\n\ntype StyledEmojiInputEditorProps = WithTheme<{\n $shouldShowContent: boolean;\n $browser: Browser | 'bot' | null | undefined;\n}>;\n\nexport const StyledMotionEmojiInputEditor = styled(motion.div)<StyledEmojiInputEditorProps>`\n color: ${({ theme, $shouldShowContent }: StyledEmojiInputEditorProps) =>\n $shouldShowContent ? theme.text : theme['100']};\n flex: 1 1 auto;\n font-family: ${getFontFamily};\n overflow-y: scroll;\n overflow-x: hidden;\n word-break: break-word;\n\n // This fixes a bug where the field is not editable in certain browsers.\n // This is for example the case on iOS 15 or older.\n -webkit-user-modify: read-write;\n -webkit-user-select: text;\n\n lc_mention,\n nerIgnore,\n nerReplace {\n font-weight: bold;\n\n span {\n opacity: 0.5;\n }\n }\n\n // Styles for custom scrollbar\n ${({ $browser, theme }: StyledEmojiInputEditorProps) =>\n $browser === 'firefox'\n ? css`\n scrollbar-color: rgba(${theme['text-rgb']}, 0.15) transparent;\n scrollbar-width: thin;\n `\n : css`\n &::-webkit-scrollbar {\n width: 5px;\n }\n\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-button {\n background-color: transparent;\n height: 5px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: rgba(${theme['text-rgb']}, 0.15);\n border-radius: 20px;\n }\n `}\n`;\n\nexport const StyledEmojiInputRightWrapper = styled.div`\n align-self: stretch;\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n flex: 0 0 auto;\n overflow: hidden;\n`;\n\ntype StyledEmojiInputLabelProps = WithTheme<{\n $maxWidth: number;\n $offsetWidth?: number;\n}>;\n\nexport const StyledEmojiInputLabel = styled.label<StyledEmojiInputLabelProps>`\n color: rgba(${({ theme }: StyledEmojiInputLabelProps) => theme['text-rgb']}, 0.45);\n left: ${({ $offsetWidth }) => ($offsetWidth ? `${$offsetWidth + 10}px` : '10px')};\n top: 12px;\n align-items: baseline;\n display: flex;\n flex: 0 0 auto;\n gap: 4px;\n line-height: 1.3;\n pointer-events: none;\n position: absolute;\n user-select: none;\n white-space: nowrap;\n max-width: ${({ $maxWidth, $offsetWidth }) => `${$maxWidth - ($offsetWidth ?? 0)}px`};\n overflow: hidden;\n`;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _text = require("../../../utils/text");
9
+ var _PrefixElement = require("./PrefixElement.styles");
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ const PrefixElement = ({
13
+ prefixElementRef,
14
+ element,
15
+ setIsPrefixAnimationFinished
16
+ }) => {
17
+ const [shouldShow, setShouldShow] = (0, _react.useState)(true);
18
+ const [prefixText, setPrefixText] = (0, _react.useState)('');
19
+ (0, _react.useEffect)(() => {
20
+ if (prefixElementRef.current) {
21
+ setPrefixText(prefixElementRef.current.textContent ?? '');
22
+ }
23
+ }, [prefixElementRef]);
24
+ const handleAnimationEnd = (0, _react.useCallback)(index => {
25
+ if (index === prefixText.length - 1) {
26
+ setShouldShow(false);
27
+ setIsPrefixAnimationFinished(true);
28
+ }
29
+ }, [prefixText.length, setIsPrefixAnimationFinished]);
30
+ const content = (0, _react.useMemo)(() => prefixText.split('').map((letter, index) => /*#__PURE__*/_react.default.createElement(_PrefixElement.StyledPrefixElementLetter, {
31
+ onAnimationEnd: () => handleAnimationEnd(index),
32
+ $index: index
33
+ }, letter)), [handleAnimationEnd, prefixText]);
34
+ return /*#__PURE__*/_react.default.createElement(_PrefixElement.StyledPrefixElement, {
35
+ $shouldShow: shouldShow
36
+ }, /*#__PURE__*/_react.default.createElement(_PrefixElement.StyledPrefixElementPseudo, {
37
+ ref: prefixElementRef,
38
+ dangerouslySetInnerHTML: {
39
+ __html: (0, _text.convertTextToHTML)(element)
40
+ }
41
+ }), shouldShow && /*#__PURE__*/_react.default.createElement(_PrefixElement.StyledPrefixElementLetterWrapper, null, content));
42
+ };
43
+ PrefixElement.displayName = 'PrefixElement';
44
+ var _default = exports.default = PrefixElement;
45
+ //# sourceMappingURL=PrefixElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrefixElement.js","names":["_react","_interopRequireWildcard","require","_text","_PrefixElement","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PrefixElement","prefixElementRef","element","setIsPrefixAnimationFinished","shouldShow","setShouldShow","useState","prefixText","setPrefixText","useEffect","current","textContent","handleAnimationEnd","useCallback","index","length","content","useMemo","split","map","letter","createElement","StyledPrefixElementLetter","onAnimationEnd","$index","StyledPrefixElement","$shouldShow","StyledPrefixElementPseudo","ref","dangerouslySetInnerHTML","__html","convertTextToHTML","StyledPrefixElementLetterWrapper","displayName","_default","exports"],"sources":["../../../../../src/components/emoji-input/prefix-element/PrefixElement.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useState,\n type Dispatch,\n type FC,\n type RefObject,\n type SetStateAction,\n} from 'react';\nimport { convertTextToHTML } from '../../../utils/text';\nimport {\n StyledPrefixElement,\n StyledPrefixElementLetter,\n StyledPrefixElementLetterWrapper,\n StyledPrefixElementPseudo,\n} from './PrefixElement.styles';\n\nexport type PrefixElementProps = {\n prefixElementRef: RefObject<HTMLDivElement>;\n element: string;\n setIsPrefixAnimationFinished: Dispatch<SetStateAction<boolean>>;\n};\n\nconst PrefixElement: FC<PrefixElementProps> = ({\n prefixElementRef,\n element,\n setIsPrefixAnimationFinished,\n}) => {\n const [shouldShow, setShouldShow] = useState(true);\n const [prefixText, setPrefixText] = useState('');\n\n useEffect(() => {\n if (prefixElementRef.current) {\n setPrefixText(prefixElementRef.current.textContent ?? '');\n }\n }, [prefixElementRef]);\n\n const handleAnimationEnd = useCallback(\n (index: number) => {\n if (index === prefixText.length - 1) {\n setShouldShow(false);\n setIsPrefixAnimationFinished(true);\n }\n },\n [prefixText.length, setIsPrefixAnimationFinished],\n );\n\n const content = useMemo(\n () =>\n prefixText.split('').map((letter, index) => (\n <StyledPrefixElementLetter\n onAnimationEnd={() => handleAnimationEnd(index)}\n $index={index}\n >\n {letter}\n </StyledPrefixElementLetter>\n )),\n [handleAnimationEnd, prefixText],\n );\n\n return (\n <StyledPrefixElement $shouldShow={shouldShow}>\n <StyledPrefixElementPseudo\n ref={prefixElementRef}\n dangerouslySetInnerHTML={{ __html: convertTextToHTML(element) }}\n />\n {shouldShow && (\n <StyledPrefixElementLetterWrapper>{content}</StyledPrefixElementLetterWrapper>\n )}\n </StyledPrefixElement>\n );\n};\n\nPrefixElement.displayName = 'PrefixElement';\n\nexport default PrefixElement;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledPrefixElementPseudo = exports.StyledPrefixElementLetterWrapper = exports.StyledPrefixElementLetter = exports.StyledPrefixElement = void 0;
7
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
+ const StyledPrefixElement = exports.StyledPrefixElement = _styledComponents.default.div`
11
+ position: absolute;
12
+ `;
13
+ const StyledPrefixElementPseudo = exports.StyledPrefixElementPseudo = _styledComponents.default.div`
14
+ visibility: hidden;
15
+ `;
16
+ const StyledPrefixElementLetterWrapper = exports.StyledPrefixElementLetterWrapper = _styledComponents.default.div`
17
+ transform: translateY(-2px);
18
+ `;
19
+ const waviy = (0, _styledComponents.keyframes)`
20
+ 0%, 40% {
21
+ background: linear-gradient(to right, rgb(15, 109, 126), rgb(15, 109, 126), rgb(115, 190, 204), rgb(15, 109, 126));
22
+ background-clip: text;
23
+ transform: translateY(0) scale(1);
24
+ opacity: 1;
25
+ }
26
+ 20% {
27
+ transform: translateY(-2px) scale(1.2);
28
+ opacity: 1;
29
+ }
30
+ 100% {
31
+ -webkit-text-fill-color: ${({
32
+ theme
33
+ }) => theme.text};
34
+ transform: translateY(0) scale(1);
35
+ opacity: 1;
36
+ }
37
+ `;
38
+ const backgroundPan = (0, _styledComponents.keyframes)`
39
+ 0% {
40
+ background-position: 0 center;
41
+ }
42
+ 100% {
43
+ background-position: -200% center;
44
+ }
45
+ `;
46
+ const StyledPrefixElementLetter = exports.StyledPrefixElementLetter = _styledComponents.default.span`
47
+ background-clip: text;
48
+ -webkit-text-fill-color: transparent;
49
+ background-color: ${({
50
+ theme
51
+ }) => theme.text};
52
+ opacity: 0;
53
+
54
+ animation:
55
+ ${waviy} 0.4s forwards,
56
+ ${backgroundPan} 0.1s linear infinite;
57
+ animation-delay: calc(0.03s * ${({
58
+ $index
59
+ }) => $index});
60
+
61
+ font-weight: ${({
62
+ $index
63
+ }) => $index > 0 ? 'bold' : 'normal'};
64
+ `;
65
+ //# sourceMappingURL=PrefixElement.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrefixElement.styles.js","names":["_styledComponents","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","StyledPrefixElement","exports","styled","div","StyledPrefixElementPseudo","StyledPrefixElementLetterWrapper","waviy","keyframes","theme","text","backgroundPan","StyledPrefixElementLetter","span","$index"],"sources":["../../../../../src/components/emoji-input/prefix-element/PrefixElement.styles.ts"],"sourcesContent":["import type { WithTheme } from '@chayns-components/core';\nimport styled, { keyframes } from 'styled-components';\n\ntype StyledPrefixElementProps = WithTheme<{\n $shouldShow: boolean;\n}>;\n\nexport const StyledPrefixElement = styled.div<StyledPrefixElementProps>`\n position: absolute;\n`;\n\nexport const StyledPrefixElementPseudo = styled.div`\n visibility: hidden;\n`;\n\nexport const StyledPrefixElementLetterWrapper = styled.div`\n transform: translateY(-2px);\n`;\n\ntype StyledPrefixElementLetterProps = WithTheme<{\n $index: number;\n}>;\n\nconst waviy = keyframes`\n 0%, 40% {\n background: linear-gradient(to right, rgb(15, 109, 126), rgb(15, 109, 126), rgb(115, 190, 204), rgb(15, 109, 126));\n background-clip: text;\n transform: translateY(0) scale(1);\n opacity: 1;\n }\n 20% {\n transform: translateY(-2px) scale(1.2);\n opacity: 1;\n }\n 100% {\n -webkit-text-fill-color: ${({ theme }: WithTheme<unknown>) => theme.text};\n transform: translateY(0) scale(1);\n opacity: 1;\n }\n`;\n\nconst backgroundPan = keyframes`\n 0% {\n background-position: 0 center;\n }\n 100% {\n background-position: -200% center;\n }\n`;\n\nexport const StyledPrefixElementLetter = styled.span<StyledPrefixElementLetterProps>`\n background-clip: text;\n -webkit-text-fill-color: transparent;\n background-color: ${({ theme }: StyledPrefixElementLetterProps) => theme.text};\n opacity: 0;\n\n animation:\n ${waviy} 0.4s forwards,\n ${backgroundPan} 0.1s linear infinite;\n animation-delay: calc(0.03s * ${({ $index }) => $index});\n\n font-weight: ${({ $index }) => ($index > 0 ? 'bold' : 'normal')};\n`;\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAsD,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAM/C,MAAMW,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAGE,yBAAM,CAACC,GAA8B;AACxE;AACA,CAAC;AAEM,MAAMC,yBAAyB,GAAAH,OAAA,CAAAG,yBAAA,GAAGF,yBAAM,CAACC,GAAI;AACpD;AACA,CAAC;AAEM,MAAME,gCAAgC,GAAAJ,OAAA,CAAAI,gCAAA,GAAGH,yBAAM,CAACC,GAAI;AAC3D;AACA,CAAC;AAMD,MAAMG,KAAK,GAAG,IAAAC,2BAAS,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,CAAC;EAAEC;AAA0B,CAAC,KAAKA,KAAK,CAACC,IAAK;AACjF;AACA;AACA;AACA,CAAC;AAED,MAAMC,aAAa,GAAG,IAAAH,2BAAS,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMI,yBAAyB,GAAAV,OAAA,CAAAU,yBAAA,GAAGT,yBAAM,CAACU,IAAqC;AACrF;AACA;AACA,wBAAwB,CAAC;EAAEJ;AAAsC,CAAC,KAAKA,KAAK,CAACC,IAAK;AAClF;AACA;AACA;AACA,UAAUH,KAAM;AAChB,UAAUI,aAAc;AACxB,oCAAoC,CAAC;EAAEG;AAAO,CAAC,KAAKA,MAAO;AAC3D;AACA,mBAAmB,CAAC;EAAEA;AAAO,CAAC,KAAMA,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,QAAU;AACpE,CAAC","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _core = require("@chayns-components/core");
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _dataByGroup = _interopRequireDefault(require("unicode-emoji-json/data-by-group.json"));
10
+ var _EmojiPickerCategories = _interopRequireDefault(require("./emoji-picker-categories/EmojiPickerCategories"));
11
+ var _EmojiPickerEmojis = _interopRequireDefault(require("./emoji-picker-emojis/EmojiPickerEmojis"));
12
+ var _EmojiPicker = require("./EmojiPicker.styles");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ const EmojiPicker = ({
17
+ accessToken,
18
+ onSelect,
19
+ personId
20
+ }) => {
21
+ var _emojiCategories$;
22
+ const [searchString, setSearchString] = (0, _react.useState)('');
23
+ const [selectedCategory, setSelectedCategory] = (0, _react.useState)((_emojiCategories$ = _dataByGroup.default[0]) === null || _emojiCategories$ === void 0 ? void 0 : _emojiCategories$.slug);
24
+ const handleCategorySelect = (0, _react.useCallback)(category => {
25
+ setSearchString('');
26
+ setSelectedCategory(category);
27
+ }, []);
28
+ const handleSearchChange = (0, _react.useCallback)(event => {
29
+ setSearchString(event.target.value);
30
+ }, []);
31
+ return /*#__PURE__*/_react.default.createElement(_EmojiPicker.StyledEmojiPicker, null, /*#__PURE__*/_react.default.createElement(_core.Input, {
32
+ onChange: handleSearchChange,
33
+ placeholder: "Suchen",
34
+ value: searchString
35
+ }), /*#__PURE__*/_react.default.createElement(_EmojiPickerEmojis.default, {
36
+ accessToken: accessToken,
37
+ onSelect: onSelect,
38
+ personId: personId,
39
+ searchString: searchString,
40
+ selectedCategory: selectedCategory
41
+ }), /*#__PURE__*/_react.default.createElement(_EmojiPickerCategories.default, {
42
+ onSelect: handleCategorySelect,
43
+ searchString: searchString,
44
+ selectedCategory: selectedCategory
45
+ }));
46
+ };
47
+ EmojiPicker.displayName = 'EmojiPicker';
48
+ var _default = exports.default = EmojiPicker;
49
+ //# sourceMappingURL=EmojiPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiPicker.js","names":["_core","require","_react","_interopRequireWildcard","_dataByGroup","_interopRequireDefault","_EmojiPickerCategories","_EmojiPickerEmojis","_EmojiPicker","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","EmojiPicker","accessToken","onSelect","personId","_emojiCategories$","searchString","setSearchString","useState","selectedCategory","setSelectedCategory","emojiCategories","slug","handleCategorySelect","useCallback","category","handleSearchChange","event","target","value","createElement","StyledEmojiPicker","Input","onChange","placeholder","displayName","_default","exports"],"sources":["../../../../src/components/emoji-picker/EmojiPicker.tsx"],"sourcesContent":["import { Input } from '@chayns-components/core';\nimport React, { ChangeEvent, FC, useCallback, useState } from 'react';\nimport emojiCategories from 'unicode-emoji-json/data-by-group.json';\nimport type { Category } from '../../types/category';\nimport EmojiPickerCategories from './emoji-picker-categories/EmojiPickerCategories';\nimport EmojiPickerEmojis from './emoji-picker-emojis/EmojiPickerEmojis';\nimport { StyledEmojiPicker } from './EmojiPicker.styles';\n\nexport type EmojiPickerProps = {\n /**\n * Access token of the logged-in user. Is needed to load and save the history of the emojis.\n */\n accessToken?: string;\n /**\n * Function executed when an emoji is selected in the popup\n * @param {string} emoji - Emoji that was selected\n */\n onSelect: (emoji: string) => void;\n /**\n * Person id of the logged-in user. Is needed to load and save the history of the emojis.\n */\n personId?: string;\n};\nconst EmojiPicker: FC<EmojiPickerProps> = ({ accessToken, onSelect, personId }) => {\n const [searchString, setSearchString] = useState('');\n const [selectedCategory, setSelectedCategory] = useState(emojiCategories[0]?.slug as Category);\n\n const handleCategorySelect = useCallback((category: Category) => {\n setSearchString('');\n setSelectedCategory(category);\n }, []);\n\n const handleSearchChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n setSearchString(event.target.value);\n }, []);\n\n return (\n <StyledEmojiPicker>\n <Input onChange={handleSearchChange} placeholder=\"Suchen\" value={searchString} />\n <EmojiPickerEmojis\n accessToken={accessToken}\n onSelect={onSelect}\n personId={personId}\n searchString={searchString}\n selectedCategory={selectedCategory}\n />\n <EmojiPickerCategories\n onSelect={handleCategorySelect}\n searchString={searchString}\n selectedCategory={selectedCategory}\n />\n </StyledEmojiPicker>\n );\n};\n\nEmojiPicker.displayName = 'EmojiPicker';\n\nexport default EmojiPicker;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAEA,IAAAK,sBAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,kBAAA,GAAAF,sBAAA,CAAAJ,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AAAyD,SAAAI,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAY,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAhB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAiBzD,MAAMW,WAAiC,GAAGA,CAAC;EAAEC,WAAW;EAAEC,QAAQ;EAAEC;AAAS,CAAC,KAAK;EAAA,IAAAC,iBAAA;EAC/E,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EACpD,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG,IAAAF,eAAQ,GAAAH,iBAAA,GAACM,oBAAe,CAAC,CAAC,CAAC,cAAAN,iBAAA,uBAAlBA,iBAAA,CAAoBO,IAAgB,CAAC;EAE9F,MAAMC,oBAAoB,GAAG,IAAAC,kBAAW,EAAEC,QAAkB,IAAK;IAC7DR,eAAe,CAAC,EAAE,CAAC;IACnBG,mBAAmB,CAACK,QAAQ,CAAC;EACjC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,kBAAkB,GAAG,IAAAF,kBAAW,EAAEG,KAAoC,IAAK;IAC7EV,eAAe,CAACU,KAAK,CAACC,MAAM,CAACC,KAAK,CAAC;EACvC,CAAC,EAAE,EAAE,CAAC;EAEN,oBACI9C,MAAA,CAAAS,OAAA,CAAAsC,aAAA,CAACzC,YAAA,CAAA0C,iBAAiB,qBACdhD,MAAA,CAAAS,OAAA,CAAAsC,aAAA,CAACjD,KAAA,CAAAmD,KAAK;IAACC,QAAQ,EAAEP,kBAAmB;IAACQ,WAAW,EAAC,QAAQ;IAACL,KAAK,EAAEb;EAAa,CAAE,CAAC,eACjFjC,MAAA,CAAAS,OAAA,CAAAsC,aAAA,CAAC1C,kBAAA,CAAAI,OAAiB;IACdoB,WAAW,EAAEA,WAAY;IACzBC,QAAQ,EAAEA,QAAS;IACnBC,QAAQ,EAAEA,QAAS;IACnBE,YAAY,EAAEA,YAAa;IAC3BG,gBAAgB,EAAEA;EAAiB,CACtC,CAAC,eACFpC,MAAA,CAAAS,OAAA,CAAAsC,aAAA,CAAC3C,sBAAA,CAAAK,OAAqB;IAClBqB,QAAQ,EAAEU,oBAAqB;IAC/BP,YAAY,EAAEA,YAAa;IAC3BG,gBAAgB,EAAEA;EAAiB,CACtC,CACc,CAAC;AAE5B,CAAC;AAEDR,WAAW,CAACwB,WAAW,GAAG,aAAa;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA7C,OAAA,GAEzBmB,WAAW","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.emojiPickerSize = exports.StyledEmojiPicker = void 0;
7
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ const emojiPickerSize = exports.emojiPickerSize = {
10
+ height: 285,
11
+ width: 350
12
+ };
13
+ const StyledEmojiPicker = exports.StyledEmojiPicker = _styledComponents.default.div`
14
+ align-items: center;
15
+ display: flex;
16
+ flex-direction: column;
17
+ height: ${emojiPickerSize.height}px;
18
+ justify-content: center;
19
+ padding: 10px 22px;
20
+ width: ${emojiPickerSize.width}px;
21
+ user-select: none;
22
+ `;
23
+ //# sourceMappingURL=EmojiPicker.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiPicker.styles.js","names":["_styledComponents","_interopRequireDefault","require","obj","__esModule","default","emojiPickerSize","exports","height","width","StyledEmojiPicker","styled","div"],"sources":["../../../../src/components/emoji-picker/EmojiPicker.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const emojiPickerSize = {\n height: 285,\n width: 350,\n};\n\nexport const StyledEmojiPicker = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n height: ${emojiPickerSize.height}px;\n justify-content: center;\n padding: 10px 22px;\n width: ${emojiPickerSize.width}px;\n user-select: none;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEhC,MAAMG,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC3BE,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE;AACX,CAAC;AAEM,MAAMC,iBAAiB,GAAAH,OAAA,CAAAG,iBAAA,GAAGC,yBAAM,CAACC,GAAI;AAC5C;AACA;AACA;AACA,cAAcN,eAAe,CAACE,MAAO;AACrC;AACA;AACA,aAAaF,eAAe,CAACG,KAAM;AACnC;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _dataByGroup = _interopRequireDefault(require("unicode-emoji-json/data-by-group.json"));
9
+ var _categories = require("../../../constants/categories");
10
+ var _EmojiPickerCategories = require("./EmojiPickerCategories.styles");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
+ const EmojiPickerCategories = ({
15
+ onSelect,
16
+ searchString,
17
+ selectedCategory
18
+ }) => {
19
+ const [focusedIndex, setFocusedIndex] = (0, _react.useState)(1);
20
+ const categoryRef = (0, _react.useRef)(null);
21
+ const isSearchStringGiven = searchString.trim() !== '';
22
+ const handleSelect = (0, _react.useCallback)(slug => {
23
+ onSelect(slug);
24
+ }, [onSelect]);
25
+ (0, _react.useEffect)(() => {
26
+ const handleKeyDown = event => {
27
+ if (event.key === 'Tab' || event.key === 'Tab' && event.shiftKey) {
28
+ var _categoryRef$current;
29
+ event.preventDefault();
30
+ const children = (_categoryRef$current = categoryRef.current) === null || _categoryRef$current === void 0 ? void 0 : _categoryRef$current.children;
31
+ if (children && children.length > 0) {
32
+ let newIndex = focusedIndex !== null ? focusedIndex : 0;
33
+ if (event.key === 'Tab' && event.shiftKey) {
34
+ newIndex = (newIndex - 1) % children.length;
35
+ } else if (event.key === 'Tab') {
36
+ newIndex = (newIndex + 1) % children.length;
37
+ }
38
+
39
+ // remove focus from the old element
40
+ if (focusedIndex !== null) {
41
+ const prevElement = children[focusedIndex];
42
+ prevElement.tabIndex = -1;
43
+ }
44
+ if (newIndex < 0) {
45
+ newIndex = children.length - 1;
46
+ } else if (newIndex > children.length - 1) {
47
+ newIndex = 0;
48
+ }
49
+ setFocusedIndex(newIndex);
50
+
51
+ // Set focus to the element
52
+ const newElement = children[newIndex];
53
+ newElement.tabIndex = 0;
54
+ newElement.focus();
55
+ if (!newElement) {
56
+ return;
57
+ }
58
+ const {
59
+ id
60
+ } = newElement;
61
+ handleSelect(id);
62
+ }
63
+ }
64
+ };
65
+ document.addEventListener('keydown', handleKeyDown);
66
+ return () => {
67
+ document.removeEventListener('keydown', handleKeyDown);
68
+ };
69
+ }, [focusedIndex, handleSelect]);
70
+ const handleClick = (0, _react.useCallback)(slug => {
71
+ handleSelect(slug);
72
+ }, [handleSelect]);
73
+ const categories = (0, _react.useMemo)(() => {
74
+ const categorySlugs = _dataByGroup.default.map(({
75
+ slug
76
+ }) => slug);
77
+ categorySlugs.unshift('history');
78
+ return categorySlugs.map(slug => {
79
+ const isSelected = selectedCategory === slug && !isSearchStringGiven;
80
+ return /*#__PURE__*/_react.default.createElement(_EmojiPickerCategories.StyledMotionEmojiPickerCategory, {
81
+ animate: {
82
+ filter: `grayscale(${isSelected ? 0 : 0.75})`,
83
+ opacity: isSelected ? 1 : 0.5
84
+ },
85
+ className: "prevent-lose-focus",
86
+ initial: false,
87
+ key: slug,
88
+ id: slug,
89
+ onClick: () => handleClick(slug),
90
+ transition: {
91
+ duration: 0.2
92
+ }
93
+ }, _categories.CATEGORY_EMOJIS[slug]);
94
+ });
95
+ }, [handleClick, isSearchStringGiven, selectedCategory]);
96
+ return /*#__PURE__*/_react.default.createElement(_EmojiPickerCategories.StyledEmojiPickerCategories, {
97
+ ref: categoryRef
98
+ }, categories);
99
+ };
100
+ EmojiPickerCategories.displayName = 'EmojiPickerCategories';
101
+ var _default = exports.default = EmojiPickerCategories;
102
+ //# sourceMappingURL=EmojiPickerCategories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiPickerCategories.js","names":["_react","_interopRequireWildcard","require","_dataByGroup","_interopRequireDefault","_categories","_EmojiPickerCategories","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","EmojiPickerCategories","onSelect","searchString","selectedCategory","focusedIndex","setFocusedIndex","useState","categoryRef","useRef","isSearchStringGiven","trim","handleSelect","useCallback","slug","useEffect","handleKeyDown","event","key","shiftKey","_categoryRef$current","preventDefault","children","current","length","newIndex","prevElement","tabIndex","newElement","focus","id","document","addEventListener","removeEventListener","handleClick","categories","useMemo","categorySlugs","unicodeEmoji","map","unshift","isSelected","createElement","StyledMotionEmojiPickerCategory","animate","filter","opacity","className","initial","onClick","transition","duration","CATEGORY_EMOJIS","StyledEmojiPickerCategories","ref","displayName","_default","exports"],"sources":["../../../../../src/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.tsx"],"sourcesContent":["import React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport unicodeEmoji from 'unicode-emoji-json/data-by-group.json';\nimport { CATEGORY_EMOJIS } from '../../../constants/categories';\nimport type { Category } from '../../../types/category';\nimport {\n StyledEmojiPickerCategories,\n StyledMotionEmojiPickerCategory,\n} from './EmojiPickerCategories.styles';\n\nexport type EmojiPickerCategoriesProps = {\n onSelect: (category: Category) => void;\n searchString: string;\n selectedCategory: Category;\n};\n\nconst EmojiPickerCategories: FC<EmojiPickerCategoriesProps> = ({\n onSelect,\n searchString,\n selectedCategory,\n}) => {\n const [focusedIndex, setFocusedIndex] = useState(1);\n\n const categoryRef = useRef<HTMLDivElement>(null);\n\n const isSearchStringGiven = searchString.trim() !== '';\n\n const handleSelect = useCallback(\n (slug: Category) => {\n onSelect(slug);\n },\n [onSelect],\n );\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab' || (event.key === 'Tab' && event.shiftKey)) {\n event.preventDefault();\n\n const children = categoryRef.current?.children;\n if (children && children.length > 0) {\n let newIndex = focusedIndex !== null ? focusedIndex : 0;\n\n if (event.key === 'Tab' && event.shiftKey) {\n newIndex = (newIndex - 1) % children.length;\n } else if (event.key === 'Tab') {\n newIndex = (newIndex + 1) % children.length;\n }\n\n // remove focus from the old element\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n if (newIndex < 0) {\n newIndex = children.length - 1;\n } else if (newIndex > children.length - 1) {\n newIndex = 0;\n }\n\n setFocusedIndex(newIndex);\n\n // Set focus to the element\n const newElement = children[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n\n if (!newElement) {\n return;\n }\n\n const { id } = newElement;\n\n handleSelect(id as Category);\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [focusedIndex, handleSelect]);\n\n const handleClick = useCallback(\n (slug: Category) => {\n handleSelect(slug);\n },\n [handleSelect],\n );\n\n const categories = useMemo(() => {\n const categorySlugs = unicodeEmoji.map(({ slug }) => slug);\n\n categorySlugs.unshift('history');\n\n return categorySlugs.map((slug) => {\n const isSelected = selectedCategory === slug && !isSearchStringGiven;\n\n return (\n <StyledMotionEmojiPickerCategory\n animate={{\n filter: `grayscale(${isSelected ? 0 : 0.75})`,\n opacity: isSelected ? 1 : 0.5,\n }}\n className=\"prevent-lose-focus\"\n initial={false}\n key={slug}\n id={slug}\n onClick={() => handleClick(slug as Category)}\n transition={{ duration: 0.2 }}\n >\n {CATEGORY_EMOJIS[slug as Category]}\n </StyledMotionEmojiPickerCategory>\n );\n });\n }, [handleClick, isSearchStringGiven, selectedCategory]);\n\n return (\n <StyledEmojiPickerCategories ref={categoryRef}>{categories}</StyledEmojiPickerCategories>\n );\n};\n\nEmojiPickerCategories.displayName = 'EmojiPickerCategories';\n\nexport default EmojiPickerCategories;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledMotionEmojiPickerCategory = exports.StyledEmojiPickerCategories = void 0;
7
+ var _framerMotion = require("framer-motion");
8
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
9
+ var _font = require("../../../utils/font");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ const StyledEmojiPickerCategories = exports.StyledEmojiPickerCategories = _styledComponents.default.div`
12
+ align-items: center;
13
+ border-top: 1px solid rgba(160, 160, 160, 0.3);
14
+ display: flex;
15
+ flex: 0 0 auto;
16
+ justify-content: space-between;
17
+ padding-top: 10px;
18
+ width: 100%;
19
+ `;
20
+ const StyledMotionEmojiPickerCategory = exports.StyledMotionEmojiPickerCategory = (0, _styledComponents.default)(_framerMotion.motion.div)`
21
+ cursor: pointer;
22
+ font-family: ${_font.getFontFamily};
23
+ font-size: 20px;
24
+ `;
25
+ //# sourceMappingURL=EmojiPickerCategories.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiPickerCategories.styles.js","names":["_framerMotion","require","_styledComponents","_interopRequireDefault","_font","obj","__esModule","default","StyledEmojiPickerCategories","exports","styled","div","StyledMotionEmojiPickerCategory","motion","getFontFamily"],"sources":["../../../../../src/components/emoji-picker/emoji-picker-categories/EmojiPickerCategories.styles.ts"],"sourcesContent":["import type { FramerMotionBugFix } from '@chayns-components/core';\nimport { motion } from 'framer-motion';\nimport styled from 'styled-components';\nimport { getFontFamily } from '../../../utils/font';\n\nexport const StyledEmojiPickerCategories = styled.div`\n align-items: center;\n border-top: 1px solid rgba(160, 160, 160, 0.3);\n display: flex;\n flex: 0 0 auto;\n justify-content: space-between;\n padding-top: 10px;\n width: 100%;\n`;\n\nexport const StyledMotionEmojiPickerCategory = styled(motion.div)<FramerMotionBugFix>`\n cursor: pointer;\n font-family: ${getFontFamily};\n font-size: 20px;\n`;\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAAoD,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE7C,MAAMG,2BAA2B,GAAAC,OAAA,CAAAD,2BAAA,GAAGE,yBAAM,CAACC,GAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,+BAA+B,GAAAH,OAAA,CAAAG,+BAAA,GAAG,IAAAF,yBAAM,EAACG,oBAAM,CAACF,GAAG,CAAsB;AACtF;AACA,mBAAmBG,mBAAc;AACjC;AACA,CAAC","ignoreList":[]}