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 } })