diff --git a/desktop/src/ui/platform.ts b/desktop/src/ui/platform.ts
index a4b3ad22e4..001bc83030 100644
--- a/desktop/src/ui/platform.ts
+++ b/desktop/src/ui/platform.ts
@@ -117,6 +117,7 @@ import '@hcengineering/mail-assets'
import '@hcengineering/chat-assets'
import '@hcengineering/inbox-assets'
import '@hcengineering/achievement-assets'
+import '@hcengineering/emoji-assets'
import '@hcengineering/media-assets'
import analyticsCollector, { analyticsCollectorId } from '@hcengineering/analytics-collector'
diff --git a/dev/prod/src/platform.ts b/dev/prod/src/platform.ts
index 80c87fb54a..9a4369a0be 100644
--- a/dev/prod/src/platform.ts
+++ b/dev/prod/src/platform.ts
@@ -129,6 +129,7 @@ import '@hcengineering/inbox-assets'
import '@hcengineering/mail-assets'
import '@hcengineering/github-assets'
import '@hcengineering/achievement-assets'
+import '@hcengineering/emoji-assets'
import { coreId } from '@hcengineering/core'
import presentation, {
diff --git a/plugins/emoji-assets/assets/icons.svg b/plugins/emoji-assets/assets/icons.svg
index 02804b93ae..da9bf7d211 100644
--- a/plugins/emoji-assets/assets/icons.svg
+++ b/plugins/emoji-assets/assets/icons.svg
@@ -1,16 +1,50 @@
diff --git a/plugins/emoji-assets/package.json b/plugins/emoji-assets/package.json
index 312bdc961b..58320cf05a 100644
--- a/plugins/emoji-assets/package.json
+++ b/plugins/emoji-assets/package.json
@@ -33,6 +33,7 @@
"typescript": "^5.3.3"
},
"dependencies": {
- "@hcengineering/platform": "^0.6.11"
+ "@hcengineering/platform": "^0.6.11",
+ "@hcengineering/emoji": "^0.6.0"
}
}
diff --git a/plugins/emoji-assets/src/index.ts b/plugins/emoji-assets/src/index.ts
index 0c56ed7ff6..cf8caf17d4 100644
--- a/plugins/emoji-assets/src/index.ts
+++ b/plugins/emoji-assets/src/index.ts
@@ -12,3 +12,20 @@
// See the License for the specific language governing permissions and
// limitations under the License.
//
+import { loadMetadata } from '@hcengineering/platform'
+import emojiPlugin from '@hcengineering/emoji'
+
+const icons = require('../assets/icons.svg') as string // eslint-disable-line
+loadMetadata(emojiPlugin.icon, {
+ Activities: `${icons}#activities`,
+ AnimalsAndNature: `${icons}#animals-and-nature`,
+ Flags: `${icons}#flags`,
+ FoodAndDrink: `${icons}#food-and-drink`,
+ FrequentlyUsed: `${icons}#frequently-used`,
+ GettingWorkDone: `${icons}#getting-work-done`,
+ Objects: `${icons}#objects`,
+ Search: `${icons}#search`,
+ SmileysAndPeople: `${icons}#smileys-and-people`,
+ Symbols: `${icons}#symbols`,
+ TravelAndPlaces: `${icons}#travel-and-places`
+})
diff --git a/plugins/emoji-resources/src/components/ActionsPopup.svelte b/plugins/emoji-resources/src/components/ActionsPopup.svelte
index c992acb5f3..98598202d8 100644
--- a/plugins/emoji-resources/src/components/ActionsPopup.svelte
+++ b/plugins/emoji-resources/src/components/ActionsPopup.svelte
@@ -4,9 +4,8 @@
// Licensed under the Eclipse Public License v2.0 (SPDX: EPL-2.0).
//
import { createEventDispatcher } from 'svelte'
- import { ExtendedEmoji, Emoji } from '@hcengineering/emoji'
- import emojiPlugin from '../plugin'
- import { getEmojiByHexcode, getEmojiSkins } from '../utils'
+ import emojiPlugin, { ExtendedEmoji, Emoji } from '@hcengineering/emoji'
+ import { getEmojiByHexcode, getEmojiSkins } from '../utils'
import EmojiButton from './EmojiButton.svelte'
import { getSkinTone, emojiStore } from '../store'
import { Label, IconDelete, closeTooltip, ButtonBase } from '@hcengineering/ui'
diff --git a/plugins/emoji-resources/src/components/EmojiPopup.svelte b/plugins/emoji-resources/src/components/EmojiPopup.svelte
index 8d890d5b36..bd21609041 100644
--- a/plugins/emoji-resources/src/components/EmojiPopup.svelte
+++ b/plugins/emoji-resources/src/components/EmojiPopup.svelte
@@ -12,7 +12,7 @@
showPopup,
eventToHTMLElement,
ButtonBase,
- closeTooltip, getEmojiByShortCode, getEmojiSkins, getUnicodeEmojiByShortCode
+ closeTooltip, getEmojiByShortCode, getEmojiSkins, getUnicodeEmojiByShortCode, Icon, icon
} from '@hcengineering/ui'
import {
searchEmoji,
@@ -27,9 +27,9 @@
import ActionsPopup from './ActionsPopup.svelte'
import SkinTonePopup from './SkinTonePopup.svelte'
import EmojiGroup from './EmojiGroup.svelte'
- import emojiPlugin from '../plugin'
- import { isCustomEmoji } from '@hcengineering/emoji'
+ import emojiPlugin, { isCustomEmoji } from '@hcengineering/emoji'
import { emojiCategories, EmojiCategory } from '../types'
+ import { Asset, getMetadata } from '@hcengineering/platform'
export let embedded = false
export let selected: string | undefined
@@ -50,7 +50,7 @@
{
id: 'search-category',
label: emojiPlugin.string.SearchResults,
- /* icon: IconSearch */
+ icon: emojiPlugin.icon.Search
}
]
let timer: any = null
@@ -235,6 +235,7 @@
handleScrollToCategory(category.id)
}}
>
+
{/each}
diff --git a/plugins/emoji-resources/src/components/icons/Activities.svelte b/plugins/emoji-resources/src/components/icons/Activities.svelte
deleted file mode 100644
index 143be0e17d..0000000000
--- a/plugins/emoji-resources/src/components/icons/Activities.svelte
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
diff --git a/plugins/emoji-resources/src/components/icons/AnimalsAndNature.svelte b/plugins/emoji-resources/src/components/icons/AnimalsAndNature.svelte
deleted file mode 100644
index ea23a6fd63..0000000000
--- a/plugins/emoji-resources/src/components/icons/AnimalsAndNature.svelte
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
diff --git a/plugins/emoji-resources/src/components/icons/Flags.svelte b/plugins/emoji-resources/src/components/icons/Flags.svelte
deleted file mode 100644
index d20ae0da0e..0000000000
--- a/plugins/emoji-resources/src/components/icons/Flags.svelte
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
diff --git a/plugins/emoji-resources/src/components/icons/FoodAndDrink.svelte b/plugins/emoji-resources/src/components/icons/FoodAndDrink.svelte
deleted file mode 100644
index e95481f1fe..0000000000
--- a/plugins/emoji-resources/src/components/icons/FoodAndDrink.svelte
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
diff --git a/plugins/emoji-resources/src/components/icons/FrequentlyUsed.svelte b/plugins/emoji-resources/src/components/icons/FrequentlyUsed.svelte
deleted file mode 100644
index 1f0e024d6b..0000000000
--- a/plugins/emoji-resources/src/components/icons/FrequentlyUsed.svelte
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
diff --git a/plugins/emoji-resources/src/components/icons/GettingWorkDone.svelte b/plugins/emoji-resources/src/components/icons/GettingWorkDone.svelte
deleted file mode 100644
index 8d7e546c19..0000000000
--- a/plugins/emoji-resources/src/components/icons/GettingWorkDone.svelte
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
diff --git a/plugins/emoji-resources/src/components/icons/Objects.svelte b/plugins/emoji-resources/src/components/icons/Objects.svelte
deleted file mode 100644
index d8eef6e907..0000000000
--- a/plugins/emoji-resources/src/components/icons/Objects.svelte
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
diff --git a/plugins/emoji-resources/src/components/icons/Search.svelte b/plugins/emoji-resources/src/components/icons/Search.svelte
deleted file mode 100644
index 571a86260d..0000000000
--- a/plugins/emoji-resources/src/components/icons/Search.svelte
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
diff --git a/plugins/emoji-resources/src/components/icons/SmileysAndPeople.svelte b/plugins/emoji-resources/src/components/icons/SmileysAndPeople.svelte
deleted file mode 100644
index 20488a923b..0000000000
--- a/plugins/emoji-resources/src/components/icons/SmileysAndPeople.svelte
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
diff --git a/plugins/emoji-resources/src/components/icons/Symbols.svelte b/plugins/emoji-resources/src/components/icons/Symbols.svelte
deleted file mode 100644
index fa30e221df..0000000000
--- a/plugins/emoji-resources/src/components/icons/Symbols.svelte
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
diff --git a/plugins/emoji-resources/src/components/icons/TravelAndPlaces.svelte b/plugins/emoji-resources/src/components/icons/TravelAndPlaces.svelte
deleted file mode 100644
index 3fe8401ca2..0000000000
--- a/plugins/emoji-resources/src/components/icons/TravelAndPlaces.svelte
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
diff --git a/plugins/emoji-resources/src/plugin.ts b/plugins/emoji-resources/src/plugin.ts
deleted file mode 100644
index 2bc99490c0..0000000000
--- a/plugins/emoji-resources/src/plugin.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { type IntlString, mergeIds } from '@hcengineering/platform'
-import emojiPlugin, { emojiId } from '@hcengineering/emoji'
-
-export default mergeIds(emojiId, emojiPlugin, {
- string: {
- Remove: '' as IntlString,
- SearchResults: '' as IntlString,
- SearchDots: '' as IntlString,
- DefaultSkinTone: '' as IntlString,
- FrequentlyUsed: '' as IntlString,
- GettingWorkDone: '' as IntlString,
- SmileysAndPeople: '' as IntlString,
- AnimalsAndNature: '' as IntlString,
- FoodAndDrink: '' as IntlString,
- TravelAndPlaces: '' as IntlString,
- Activities: '' as IntlString,
- Objects: '' as IntlString,
- Symbols: '' as IntlString,
- Flags: '' as IntlString,
- NoTone: '' as IntlString,
- Light: '' as IntlString,
- MediumLight: '' as IntlString,
- Medium: '' as IntlString,
- MediumDark: '' as IntlString,
- Dark: '' as IntlString
- }
-})
diff --git a/plugins/emoji-resources/src/types.ts b/plugins/emoji-resources/src/types.ts
index 9a842c3470..1db5abd7eb 100644
--- a/plugins/emoji-resources/src/types.ts
+++ b/plugins/emoji-resources/src/types.ts
@@ -1,22 +1,22 @@
-import type { IntlString } from '@hcengineering/platform'
+import type { Asset, IntlString } from '@hcengineering/platform'
import { type EmojiWithGroup } from '@hcengineering/emoji'
-import emojiPlugin from './plugin'
+import emojiPlugin from '@hcengineering/emoji'
export interface EmojiCategory {
id: string
label: IntlString
- // icon: AnySvelteComponent
+ icon: Asset
categories?: string[] | string
emojisString?: string[]
emojis?: EmojiWithGroup[]
}
export const emojiCategories: EmojiCategory[] = [
- { id: 'frequently-used', label: emojiPlugin.string.FrequentlyUsed/* , icon: emojiPlugin.component.IconFrequentlyUsed */},
+ { id: 'frequently-used', label: emojiPlugin.string.FrequentlyUsed, icon: emojiPlugin.icon.FrequentlyUsed },
{
id: 'getting-work-done',
label: emojiPlugin.string.GettingWorkDone,
- /* icon: emojiPlugin.component.IconGettingWorkDone, */
+ icon: emojiPlugin.icon.GettingWorkDone,
emojisString: [
'2705',
'1F440',
@@ -43,21 +43,21 @@ export const emojiCategories: EmojiCategory[] = [
{
id: 'smileys-people',
label: emojiPlugin.string.SmileysAndPeople,
- /* icon: emojiPlugin.component.IconSmileysAndPeople, */
+ icon: emojiPlugin.icon.SmileysAndPeople,
categories: ['smileys-emotion', 'people-body']
},
{
id: 'animals-nature',
label: emojiPlugin.string.AnimalsAndNature,
- /* icon: emojiPlugin.component.IconAnimalsAndNature, */
+ icon: emojiPlugin.icon.AnimalsAndNature,
categories: 'animals-nature'
},
- { id: 'food-drink', label: emojiPlugin.string.FoodAndDrink, /* icon: emojiPlugin.component.IconFoodAndDrink, */categories: 'food-drink' },
- { id: 'travel-places', label: emojiPlugin.string.TravelAndPlaces, /* icon: emojiPlugin.component.IconTravelAndPlaces, */categories: 'travel-places' },
- { id: 'activities', label: emojiPlugin.string.Activities, /* icon: emojiPlugin.component.IconActivities, */categories: 'activities' },
- { id: 'objects', label: emojiPlugin.string.Objects, /* icon: emojiPlugin.component.IconObjects, */categories: 'objects' },
- { id: 'symbols', label: emojiPlugin.string.Symbols, /* icon: emojiPlugin.component.IconSymbols, */categories: 'symbols' },
- { id: 'flags', label: emojiPlugin.string.Flags, /*icon: emojiPlugin.component.IconFlags, */categories: 'flags' }
+ { id: 'food-drink', label: emojiPlugin.string.FoodAndDrink, icon: emojiPlugin.icon.FoodAndDrink, categories: 'food-drink' },
+ { id: 'travel-places', label: emojiPlugin.string.TravelAndPlaces, icon: emojiPlugin.icon.TravelAndPlaces, categories: 'travel-places' },
+ { id: 'activities', label: emojiPlugin.string.Activities, icon: emojiPlugin.icon.Activities, categories: 'activities' },
+ { id: 'objects', label: emojiPlugin.string.Objects, icon: emojiPlugin.icon.Objects, categories: 'objects' },
+ { id: 'symbols', label: emojiPlugin.string.Symbols, icon: emojiPlugin.icon.Symbols, categories: 'symbols' },
+ { id: 'flags', label: emojiPlugin.string.Flags, icon: emojiPlugin.icon.Flags, categories: 'flags' }
]
export const skinTones: Map = new Map(
diff --git a/plugins/emoji/src/plugin.ts b/plugins/emoji/src/plugin.ts
index 52aba966ff..4cd17ce272 100644
--- a/plugins/emoji/src/plugin.ts
+++ b/plugins/emoji/src/plugin.ts
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
//
-import { plugin, type Plugin } from '@hcengineering/platform'
+import { Asset, type IntlString, plugin, type Plugin } from '@hcengineering/platform'
import { AnyComponent } from '@hcengineering/ui'
/** @public */
@@ -21,6 +21,41 @@ export const emojiId = 'emoji' as Plugin
export const emojiPlugin = plugin(emojiId, {
component: {
EmojiPopup: '' as AnyComponent
+ },
+ string: {
+ Remove: '' as IntlString,
+ SearchResults: '' as IntlString,
+ SearchDots: '' as IntlString,
+ DefaultSkinTone: '' as IntlString,
+ FrequentlyUsed: '' as IntlString,
+ GettingWorkDone: '' as IntlString,
+ SmileysAndPeople: '' as IntlString,
+ AnimalsAndNature: '' as IntlString,
+ FoodAndDrink: '' as IntlString,
+ TravelAndPlaces: '' as IntlString,
+ Activities: '' as IntlString,
+ Objects: '' as IntlString,
+ Symbols: '' as IntlString,
+ Flags: '' as IntlString,
+ NoTone: '' as IntlString,
+ Light: '' as IntlString,
+ MediumLight: '' as IntlString,
+ Medium: '' as IntlString,
+ MediumDark: '' as IntlString,
+ Dark: '' as IntlString
+ },
+ icon: {
+ Activities: '' as Asset,
+ AnimalsAndNature: '' as Asset,
+ Flags: '' as Asset,
+ FoodAndDrink: '' as Asset,
+ FrequentlyUsed: '' as Asset,
+ GettingWorkDone: '' as Asset,
+ Objects: '' as Asset,
+ Search: '' as Asset,
+ SmileysAndPeople: '' as Asset,
+ Symbols: '' as Asset,
+ TravelAndPlaces: '' as Asset
}
})