1
0

Merge branch 'main' into feature/emoji-autocomplete

This commit is contained in:
Anthony Fu 2023-01-16 11:01:01 +01:00
commit e9e7257356
20 changed files with 406 additions and 274 deletions

View File

@ -28,20 +28,24 @@ A nimble Mastodon web client
It is already quite usable, but it isn't ready for wide adoption yet. We recommend you use it if you would like to help us build it. We appreciate your feedback and contributions. Check out the [Open Issues](https://github.com/elk-zone/elk/issues) and jump in the action. Join the [Elk discord server](https://chat.elk.zone) to chat with us and learn more about the project.
## Official Deployment
## Deployment
### Official Deployment
The Elk team maintains a deployment at:
- 🦌 Production: [elk.zone](https://elk.zone)
- 🐙 Canary: [main.elk.zone](https://main.elk.zone) (deploys on every commit to `main` branch)
## Ecosystem
### Ecosystem
These are known deployments using Elk as an alternative Web client for Mastodon servers or as a base for other projects in the fediverse:
- [elk.h4.io](https://elk.h4.io) - Use Elk for the `h4.io` Server
- [elk.universeodon.com](https://elk.universeodon.com) - Use Elk for the Universeodon Server
> **Note**: Community deployments are **NOT** maintained by the Elk team. It may not be synced with Elk's source code. Please do your own research about the host servers before using them.
## 💖 Sponsors
We are grateful for the generous sponsorship and help of:
@ -122,6 +126,12 @@ nr test
- [shiki](https://shiki.matsu.io/) - A beautiful Syntax Highlighter
- [vite-plugin-pwa](https://github.com/vite-pwa/vite-plugin-pwa) - Prompt for update and push notifications
## 👨‍💻 Contributors
<a href="https://github.com/elk-zone/elk/graphs/contributors">
<img src="https://contrib.rocks/image?repo=elk-zone/elk" />
</a>
## 📄 License
[MIT](./LICENSE) &copy; 2022-PRESENT Elk contributors

View File

@ -8,12 +8,21 @@ const { account, command, context, ...props } = defineProps<{
command?: boolean
}>()
const { t } = useI18n()
const isSelf = $(useSelfAccount(() => account))
const enable = $computed(() => !isSelf && currentUser.value)
const relationship = $computed(() => props.relationship || useRelationship(account).value)
const { client } = $(useMasto())
async function toggleFollow() {
if (relationship!.following) {
if (await openConfirmDialog({
title: t('confirm.unfollow.title'),
confirm: t('confirm.unfollow.confirm'),
cancel: t('confirm.unfollow.cancel'),
}) !== 'confirm')
return
}
relationship!.following = !relationship!.following
try {
const newRel = await client.v1.accounts[relationship!.following ? 'follow' : 'unfollow'](account.id)
@ -52,8 +61,6 @@ async function unmute() {
}
}
const { t } = useI18n()
useCommand({
scope: 'Actions',
order: -2,

View File

@ -12,12 +12,12 @@ const isSelf = $(useSelfAccount(() => account))
const { t } = useI18n()
const { client } = $(useMasto())
const isConfirmed = async (title: string) => {
return await openConfirmDialog(t('common.confirm_dialog.title', [title])) === 'confirm'
}
const toggleMute = async (title: string) => {
if (!await isConfirmed(title))
const toggleMute = async () => {
if (!relationship!.muting && await openConfirmDialog({
title: t('confirm.mute_account.title', [account.acct]),
confirm: t('confirm.mute_account.confirm'),
cancel: t('confirm.mute_account.cancel'),
}) !== 'confirm')
return
relationship!.muting = !relationship!.muting
@ -28,24 +28,36 @@ const toggleMute = async (title: string) => {
: await client.v1.accounts.unmute(account.id)
}
const toggleBlockUser = async (title: string) => {
if (!await isConfirmed(title))
const toggleBlockUser = async () => {
if (!relationship!.blocking && await openConfirmDialog({
title: t('confirm.block_account.title', [account.acct]),
confirm: t('confirm.block_account.confirm'),
cancel: t('confirm.block_account.cancel'),
}) !== 'confirm')
return
relationship!.blocking = !relationship!.blocking
relationship = await client.v1.accounts[relationship!.blocking ? 'block' : 'unblock'](account.id)
}
const toggleBlockDomain = async (title: string) => {
if (!await isConfirmed(title))
const toggleBlockDomain = async () => {
if (!relationship!.domainBlocking && await openConfirmDialog({
title: t('confirm.block_domain.title', [getServerName(account)]),
confirm: t('confirm.block_domain.confirm'),
cancel: t('confirm.block_domain.cancel'),
}) !== 'confirm')
return
relationship!.domainBlocking = !relationship!.domainBlocking
await client.v1.domainBlocks[relationship!.domainBlocking ? 'block' : 'unblock'](getServerName(account))
}
const toggleReblogs = async (title: string) => {
if (!await isConfirmed(title))
const toggleReblogs = async () => {
if (!relationship!.showingReblogs && await openConfirmDialog({
title: t('confirm.show_reblogs.title', [account.acct]),
confirm: t('confirm.show_reblogs.confirm'),
cancel: t('confirm.show_reblogs.cancel'),
}) !== 'confirm')
return
const showingReblogs = !relationship?.showingReblogs
@ -90,14 +102,14 @@ const toggleReblogs = async (title: string) => {
icon="i-ri:repeat-line"
:text="$t('menu.show_reblogs', [`@${account.acct}`])"
:command="command"
@click="toggleReblogs($t('menu.show_reblogs', [`@${account.acct}`]))"
@click="toggleReblogs()"
/>
<CommonDropdownItem
v-else
:text="$t('menu.hide_reblogs', [`@${account.acct}`])"
icon="i-ri:repeat-line"
:command="command"
@click="toggleReblogs($t('menu.hide_reblogs', [`@${account.acct}`]))"
@click="toggleReblogs()"
/>
<CommonDropdownItem
@ -105,14 +117,14 @@ const toggleReblogs = async (title: string) => {
:text="$t('menu.mute_account', [`@${account.acct}`])"
icon="i-ri:volume-up-fill"
:command="command"
@click="toggleMute($t('menu.mute_account', [`@${account.acct}`]))"
@click="toggleMute()"
/>
<CommonDropdownItem
v-else
:text="$t('menu.unmute_account', [`@${account.acct}`])"
icon="i-ri:volume-mute-line"
:command="command"
@click="toggleMute($t('menu.unmute_account', [`@${account.acct}`]))"
@click="toggleMute()"
/>
<CommonDropdownItem
@ -120,14 +132,14 @@ const toggleReblogs = async (title: string) => {
:text="$t('menu.block_account', [`@${account.acct}`])"
icon="i-ri:forbid-2-line"
:command="command"
@click="toggleBlockUser($t('menu.block_account', [`@${account.acct}`]))"
@click="toggleBlockUser()"
/>
<CommonDropdownItem
v-else
:text="$t('menu.unblock_account', [`@${account.acct}`])"
icon="i-ri:checkbox-circle-line"
:command="command"
@click="toggleBlockUser($t('menu.unblock_account', [`@${account.acct}`]))"
@click="toggleBlockUser()"
/>
<template v-if="getServerName(account) !== currentServer">
@ -136,14 +148,14 @@ const toggleReblogs = async (title: string) => {
:text="$t('menu.block_domain', [getServerName(account)])"
icon="i-ri:shut-down-line"
:command="command"
@click="toggleBlockDomain($t('menu.block_domain', [getServerName(account)]))"
@click="toggleBlockDomain()"
/>
<CommonDropdownItem
v-else
:text="$t('menu.unblock_domain', [getServerName(account)])"
icon="i-ri:restart-line"
:command="command"
@click="toggleBlockDomain($t('menu.unblock_domain', [getServerName(account)]))"
@click="toggleBlockDomain()"
/>
</template>
</template>

View File

@ -1,5 +1,5 @@
<template>
<p flex="~ gap-1" items-center text-sm class="zen-none">
<p flex="~ gap-1 wrap" items-center text-sm class="zen-none">
<span i-ri-arrow-right-line ml--1 text-secondary-light /><slot />
</p>
</template>

View File

@ -18,10 +18,10 @@ const emit = defineEmits<{
</div>
<div flex justify-end gap-2>
<button btn-text @click="emit('choice', 'cancel')">
{{ cancel || $t('common.confirm_dialog.cancel') }}
{{ cancel || $t('confirm.common.cancel') }}
</button>
<button btn-solid @click="emit('choice', 'confirm')">
{{ confirm || $t('common.confirm_dialog.confirm') }}
{{ confirm || $t('confirm.common.confirm') }}
</button>
</div>
</div>

View File

@ -133,9 +133,9 @@ defineExpose({
:class="[isSending ? 'pointer-events-none' : '', isOverDropZone ? '!border-primary' : '']"
>
<ContentMentionGroup v-if="draft.mentions?.length && shouldExpanded">
<div v-for="m of draft.mentions" :key="m" text-primary>
@{{ m }}
</div>
<button v-for="m, i of draft.mentions" :key="m" text-primary hover:color-red @click="draft.mentions?.splice(i, 1)">
{{ acctToShortHandle(m) }}
</button>
</ContentMentionGroup>
<div v-if="draft.params.sensitive">

View File

@ -63,9 +63,9 @@ const shareLink = async (status: mastodon.v1.Status) => {
const deleteStatus = async () => {
if (await openConfirmDialog({
title: t('menu.delete_confirm.title'),
confirm: t('menu.delete_confirm.confirm'),
cancel: t('menu.delete_confirm.cancel'),
title: t('confirm.delete_posts.title'),
confirm: t('confirm.delete_posts.confirm'),
cancel: t('confirm.delete_posts.cancel'),
}) !== 'confirm')
return

View File

@ -7,10 +7,14 @@ export function getDisplayName(account: mastodon.v1.Account, options?: { rich?:
return displayName.replace(/:([\w-]+?):/g, '')
}
export function acctToShortHandle(acct: string) {
return `@${acct.includes('@') ? acct.split('@')[0] : acct}`
}
export function getShortHandle({ acct }: mastodon.v1.Account) {
if (!acct)
return ''
return `@${acct.includes('@') ? acct.split('@')[0] : acct}`
return acctToShortHandle(acct)
}
export function getServerName(account: mastodon.v1.Account) {

View File

@ -86,11 +86,6 @@
"toggle_zen_mode": "تبديل وضع الهدوء"
},
"common": {
"confirm_dialog": {
"cancel": "كلا",
"confirm": "نعم",
"title": "هل أنت متأكد؟"
},
"end_of_list": "نهاية القائمة",
"error": "حدث خطأ",
"in": "في",
@ -101,6 +96,17 @@
"draft_title": "مسودة {0}",
"drafts": "المسودات ({v})"
},
"confirm": {
"common": {
"cancel": "كلا",
"confirm": "نعم"
},
"delete_posts": {
"cancel": "إلغاء",
"confirm": "حذف",
"title": "هل أنت متأكد أنك تريد حذف هذا المنشور؟"
}
},
"conversation": {
"with": "مع"
},
@ -131,11 +137,6 @@
"copy_link_to_post": "انسخ الرابط إلى هذا المنشور",
"delete": "حذف",
"delete_and_redraft": "حذف وإعادة صياغة",
"delete_confirm": {
"cancel": "إلغاء",
"confirm": "حذف",
"title": "هل أنت متأكد أنك تريد حذف هذا المنشور؟"
},
"direct_message_account": "إرسال رسالة مباشرة إلى {0}",
"edit": "تعديل",
"hide_reblogs": "إخفاء المشاركات من {0}",

View File

@ -89,11 +89,6 @@
"toggle_zen_mode": "Zen-Modus ändern"
},
"common": {
"confirm_dialog": {
"cancel": "Abbrechen",
"confirm": "OK",
"title": "Bist du sicher, {0}?"
},
"end_of_list": "Ende der Liste",
"error": "FEHLER",
"in": "in",
@ -104,6 +99,18 @@
"draft_title": "Entwurf {0}",
"drafts": "Entwürfe ({v})"
},
"confirm": {
"common": {
"cancel": "Abbrechen",
"confirm": "OK",
"title": "Bist du sicher, {0}?"
},
"delete_posts": {
"cancel": "Abbrechen",
"confirm": "Löschen",
"title": "Möchtest du diesen Beitrag wirklich löschen?"
}
},
"conversation": {
"with": "mit"
},
@ -134,11 +141,6 @@
"copy_link_to_post": "Link zu diesem Beitrag kopieren",
"delete": "Löschen",
"delete_and_redraft": "Löschen und neu erstellen",
"delete_confirm": {
"cancel": "Abbrechen",
"confirm": "Löschen",
"title": "Möchtest du diesen Beitrag wirklich löschen?"
},
"direct_message_account": "Direktnachricht an {0}",
"edit": "Bearbeiten",
"hide_reblogs": "Boosts von {0} ausblenden",

View File

@ -89,11 +89,6 @@
"toggle_zen_mode": "Toggle zen mode"
},
"common": {
"confirm_dialog": {
"cancel": "No",
"confirm": "Yes",
"title": "Are you sure {0}?"
},
"end_of_list": "End of the list",
"error": "ERROR",
"in": "in",
@ -104,6 +99,42 @@
"draft_title": "Draft {0}",
"drafts": "Drafts ({v})"
},
"confirm": {
"block_account": {
"cancel": "Cancel",
"confirm": "Block",
"title": "Are you sure you want to block {0}"
},
"block_domain": {
"cancel": "Cancel",
"confirm": "Block",
"title": "Are you sure you want to block {0}"
},
"common": {
"cancel": "No",
"confirm": "Yes"
},
"delete_posts": {
"cancel": "Cancel",
"confirm": "Delete",
"title": "Are you sure you want to delete this post?"
},
"mute_account": {
"cancel": "Cancel",
"confirm": "Mute",
"title": "Are you sure you want to mute {0}"
},
"show_reblogs": {
"cancel": "Cancel",
"confirm": "Show",
"title": "Are you sure you want to show boosts from {0}"
},
"unfollow": {
"cancel": "Cancel",
"confirm": "Unfollow",
"title": "Are you sure you want to unfollow?"
}
},
"conversation": {
"with": "with"
},
@ -134,11 +165,6 @@
"copy_link_to_post": "Copy link to this post",
"delete": "Delete",
"delete_and_redraft": "Delete & re-draft",
"delete_confirm": {
"cancel": "Cancel",
"confirm": "Delete",
"title": "Are you sure you want to delete this post?"
},
"direct_message_account": "Direct message {0}",
"edit": "Edit",
"hide_reblogs": "Hide boosts from {0}",

View File

@ -86,11 +86,6 @@
"toggle_zen_mode": "Cambiar a modo zen"
},
"common": {
"confirm_dialog": {
"cancel": "No",
"confirm": "Si",
"title": "¿Estás seguro?"
},
"end_of_list": "Fin",
"error": "ERROR",
"in": "en",
@ -101,6 +96,18 @@
"draft_title": "Borrador {0}",
"drafts": "Borradores ({v})"
},
"confirm": {
"common": {
"cancel": "No",
"confirm": "Si",
"title": "¿Estás seguro?"
},
"delete_posts": {
"cancel": "Cancelar",
"confirm": "Eliminar",
"title": "¿Estás seguro que deseas eliminar esta publicación?"
}
},
"conversation": {
"with": "con"
},
@ -131,11 +138,6 @@
"copy_link_to_post": "Copiar enlace",
"delete": "Borrar",
"delete_and_redraft": "Borrar y volver a borrador",
"delete_confirm": {
"cancel": "Cancelar",
"confirm": "Eliminar",
"title": "¿Estás seguro que deseas eliminar esta publicación?"
},
"direct_message_account": "Mensaje directo a {0}",
"edit": "Editar",
"hide_reblogs": "Ocultar retoots de {0}",

View File

@ -83,11 +83,6 @@
"toggle_zen_mode": "Passer en mode zen"
},
"common": {
"confirm_dialog": {
"cancel": "Non",
"confirm": "Oui",
"title": "Êtes-vous sûr·e ?"
},
"end_of_list": "Fin de liste",
"error": "ERREUR",
"in": "sur",
@ -98,6 +93,18 @@
"draft_title": "Brouillon {0}",
"drafts": "Brouillons ({v})"
},
"confirm": {
"common": {
"cancel": "Non",
"confirm": "Oui",
"title": "Êtes-vous sûr·e ?"
},
"delete_posts": {
"cancel": "Annuler",
"confirm": "Supprimer",
"title": "Certain·e de vouloir supprimer ce message ?"
}
},
"conversation": {
"with": "avec"
},
@ -128,11 +135,6 @@
"copy_link_to_post": "Copier le lien du message",
"delete": "Supprimer",
"delete_and_redraft": "Supprimer et réécrire",
"delete_confirm": {
"cancel": "Annuler",
"confirm": "Supprimer",
"title": "Certain·e de vouloir supprimer ce message ?"
},
"direct_message_account": "Message direct à {0}",
"edit": "Éditer",
"hide_reblogs": "Cacher les boosts de {0}",

View File

@ -89,11 +89,6 @@
"toggle_zen_mode": "Alternar modo zen"
},
"common": {
"confirm_dialog": {
"cancel": "Não",
"confirm": "Sim",
"title": "Tem a certeza?"
},
"end_of_list": "Fim da lista",
"error": "ERRO",
"in": "em",
@ -104,6 +99,18 @@
"draft_title": "Rascunho {0}",
"drafts": "Rascunhos ({v})"
},
"confirm": {
"common": {
"cancel": "Não",
"confirm": "Sim",
"title": "Tem a certeza?"
},
"delete_posts": {
"cancel": "Cancelar",
"confirm": "Eliminar",
"title": "Tem a certeza que pretende eliminar esta publicação?"
}
},
"conversation": {
"with": "com"
},
@ -134,11 +141,6 @@
"copy_link_to_post": "Copiar ligação para esta publicação",
"delete": "Eliminar",
"delete_and_redraft": "Eliminar & re-editar",
"delete_confirm": {
"cancel": "Cancelar",
"confirm": "Eliminar",
"title": "Tem a certeza que pretende eliminar esta publicação?"
},
"direct_message_account": "Mensagem direta a {0}",
"edit": "Editar",
"hide_reblogs": "Esconder partilhas de {0}",

View File

@ -86,11 +86,6 @@
"toggle_zen_mode": "Zen mod durumunu değiştir"
},
"common": {
"confirm_dialog": {
"cancel": "Hayır",
"confirm": "Evet",
"title": "Emin misiniz?"
},
"end_of_list": "Listenin sonu",
"error": "HATA",
"in": "içinde",
@ -101,6 +96,18 @@
"draft_title": "Taslak {0}",
"drafts": "Taslaklar ({v})"
},
"confirm": {
"common": {
"cancel": "Hayır",
"confirm": "Evet",
"title": "Emin misiniz?"
},
"delete_posts": {
"cancel": "İptal et",
"confirm": "Sil",
"title": "Bu gönderiyi silmek istediğinizden emin misiniz?"
}
},
"conversation": {
"with": "ile"
},
@ -131,11 +138,6 @@
"copy_link_to_post": "Bu gönderinin linkini kopyala",
"delete": "Sil",
"delete_and_redraft": "Sil & yeniden taslak yap",
"delete_confirm": {
"cancel": "İptal et",
"confirm": "Sil",
"title": "Bu gönderiyi silmek istediğinizden emin misiniz?"
},
"direct_message_account": "{0} özel mesaj gönder",
"edit": "Düzenle",
"hide_reblogs": "{0} boostlarını gizle",

View File

@ -86,11 +86,6 @@
"toggle_zen_mode": "Перемкнути режим Zen"
},
"common": {
"confirm_dialog": {
"cancel": "Відмінити",
"confirm": "Так",
"title": "Ви впевнені?"
},
"end_of_list": "Кінець списку",
"error": "ПОМИЛКА",
"in": "в",
@ -101,6 +96,17 @@
"draft_title": "Чернетка {0}",
"drafts": "Чернетки ({v})"
},
"confirm": {
"common": {
"cancel": "Відмінити",
"confirm": "Так"
},
"delete_posts": {
"cancel": "Скасувати",
"confirm": "Видалити",
"title": "Ви впевнені, що хочете видалити цей допис?"
}
},
"conversation": {
"with": "з"
},
@ -131,11 +137,6 @@
"copy_link_to_post": "Скопіювати посилання на цей допис",
"delete": "Видалити",
"delete_and_redraft": "Видалити і переписати",
"delete_confirm": {
"cancel": "Скасувати",
"confirm": "Видалити",
"title": "Ви впевнені, що хочете видалити цей допис?"
},
"direct_message_account": "Пряме повідомлення {0}",
"edit": "Редагувати",
"mention_account": "Згадати {0}",

View File

@ -85,11 +85,6 @@
"toggle_zen_mode": "切换禅模式"
},
"common": {
"confirm_dialog": {
"cancel": "否",
"confirm": "是",
"title": "你确定 {0} 吗?"
},
"end_of_list": "列表到底啦",
"error": "错误",
"in": "在",
@ -100,6 +95,42 @@
"draft_title": "草稿 {0}",
"drafts": "草稿 ({v})"
},
"confirm": {
"block_account": {
"cancel": "取消",
"confirm": "拉黑",
"title": "你确定拉黑 {0} 吗?"
},
"block_domain": {
"cancel": "取消",
"confirm": "拉黑",
"title": "你确定拉黑域名 {0} 吗?"
},
"common": {
"cancel": "否",
"confirm": "是"
},
"delete_posts": {
"cancel": "取消",
"confirm": "删除",
"title": "你确定要删除这条帖文吗?"
},
"mute_account": {
"cancel": "取消",
"confirm": "屏蔽",
"title": "你确定屏蔽 {0} 吗?"
},
"show_reblogs": {
"cancel": "取消",
"confirm": "显示",
"title": "你确定要显示来自 {0} 的转发吗?"
},
"unfollow": {
"cancel": "取消",
"confirm": "取消关注",
"title": "你确定要取消关注吗?"
}
},
"conversation": {
"with": "与"
},
@ -130,11 +161,6 @@
"copy_link_to_post": "复制这篇帖文的链接",
"delete": "删除",
"delete_and_redraft": "删除并重新编辑",
"delete_confirm": {
"cancel": "取消",
"confirm": "删除",
"title": "你确定要删除这条帖文吗?"
},
"direct_message_account": "私信 {0}",
"edit": "编辑",
"hide_reblogs": "隐藏来自 {0} 的转发",

View File

@ -88,11 +88,6 @@
"toggle_zen_mode": "切換禪模式"
},
"common": {
"confirm_dialog": {
"cancel": "否",
"confirm": "是",
"title": "你確定 {0} 嗎?"
},
"end_of_list": "清單到底啦",
"error": "錯誤",
"in": "在",
@ -103,6 +98,42 @@
"draft_title": "草稿 {0}",
"drafts": "草稿 ({v})"
},
"confirm": {
"block_account": {
"cancel": "取消",
"confirm": "拉黑",
"title": "你确定將 {0} 加入黑名單吗?"
},
"block_domain": {
"cancel": "取消",
"confirm": "拉黑",
"title": "你确定將 {0} 加入域名黑名單吗?"
},
"common": {
"cancel": "否",
"confirm": "是"
},
"delete_posts": {
"cancel": "取消",
"confirm": "刪除",
"title": "你確定要刪除這則貼文嗎?"
},
"mute_account": {
"cancel": "取消",
"confirm": "靜音",
"title": "你确定要靜音 {0}吗?"
},
"show_reblogs": {
"cancel": "取消",
"confirm": "顯示",
"title": "你确定要顯示來自 {0} 的轉發吗?"
},
"unfollow": {
"cancel": "取消",
"confirm": "取消關注",
"title": "你確定要取消關注嗎?"
}
},
"conversation": {
"with": "與"
},
@ -133,11 +164,6 @@
"copy_link_to_post": "複製這篇貼文的連結",
"delete": "刪除",
"delete_and_redraft": "刪除並重新編輯",
"delete_confirm": {
"cancel": "取消",
"confirm": "刪除",
"title": "你確定要刪除這則貼文嗎?"
},
"direct_message_account": "私訊 {0}",
"edit": "編輯",
"hide_reblogs": "隱藏來自 {0} 的轉發",

View File

@ -76,7 +76,7 @@
"@iconify-json/material-symbols": "^1.1.26",
"@iconify-json/ph": "^1.1.3",
"@iconify-json/ri": "^1.1.4",
"@iconify-json/twemoji": "^1.1.9",
"@iconify-json/twemoji": "^1.1.10",
"@nuxtjs/color-mode": "^3.2.0",
"@nuxtjs/i18n": "^8.0.0-beta.7",
"@pinia/nuxt": "^0.4.6",
@ -114,7 +114,7 @@
"unplugin-vue-inspector": "^0.0.2",
"vite-plugin-inspect": "^0.7.14",
"vite-plugin-pwa": "^0.14.1",
"vitest": "^0.27.0",
"vitest": "^0.27.1",
"vitest-environment-nuxt": "0.4.0",
"vue-tsc": "^1.0.24",
"workbox-build": "^6.5.4",

View File

@ -44,7 +44,7 @@ importers:
'@iconify-json/material-symbols': ^1.1.26
'@iconify-json/ph': ^1.1.3
'@iconify-json/ri': ^1.1.4
'@iconify-json/twemoji': ^1.1.9
'@iconify-json/twemoji': ^1.1.10
'@iconify/utils': ^2.0.11
'@nuxtjs/color-mode': ^3.2.0
'@nuxtjs/i18n': ^8.0.0-beta.7
@ -118,7 +118,7 @@ importers:
unplugin-vue-inspector: ^0.0.2
vite-plugin-inspect: ^0.7.14
vite-plugin-pwa: ^0.14.1
vitest: ^0.27.0
vitest: ^0.27.1
vitest-environment-nuxt: 0.4.0
vue-advanced-cropper: ^2.8.6
vue-tsc: ^1.0.24
@ -175,7 +175,7 @@ importers:
'@iconify-json/material-symbols': 1.1.26
'@iconify-json/ph': 1.1.3
'@iconify-json/ri': 1.1.4
'@iconify-json/twemoji': 1.1.9
'@iconify-json/twemoji': 1.1.10
'@nuxtjs/color-mode': 3.2.0
'@nuxtjs/i18n': 8.0.0-beta.7
'@pinia/nuxt': 0.4.6_typescript@4.9.4
@ -213,8 +213,8 @@ importers:
unplugin-vue-inspector: 0.0.2
vite-plugin-inspect: 0.7.14
vite-plugin-pwa: 0.14.1
vitest: 0.27.0_jsdom@21.0.0
vitest-environment-nuxt: 0.4.0_vitest@0.27.0
vitest: 0.27.1_jsdom@21.0.0
vitest-environment-nuxt: 0.4.0_vitest@0.27.1
vue-tsc: 1.0.24_typescript@4.9.4
workbox-build: 6.5.4
workbox-window: 6.5.4
@ -1745,8 +1745,8 @@ packages:
'@iconify/types': 2.0.0
dev: true
/@iconify-json/twemoji/1.1.9:
resolution: {integrity: sha512-AS78Gpsksfo0PFLTclfBWAPUQec3mdSw3iP5bNFd2GhlMnZUSFYRnFcgVq3ve6Tfw5H7FjBw5FS4WdeZHD1wOg==}
/@iconify-json/twemoji/1.1.10:
resolution: {integrity: sha512-u3SBtWvh6S1qVXqjnQGlPkfxy1HBAwEFuengwau1NngfOc9vpecbKcxvrd85Egf7hMElH/uYCs/yrMnsbZ7yxA==}
dependencies:
'@iconify/types': 2.0.0
dev: true
@ -2314,9 +2314,9 @@ packages:
'@rollup/plugin-replace': 5.0.1_rollup@2.79.1
'@vitejs/plugin-vue': 3.2.0_vite@3.2.5+vue@3.2.45
'@vitejs/plugin-vue-jsx': 2.1.1_vite@3.2.5+vue@3.2.45
autoprefixer: 10.4.13_postcss@8.4.19
autoprefixer: 10.4.13_postcss@8.4.21
chokidar: 3.5.3
cssnano: 5.1.14_postcss@8.4.19
cssnano: 5.1.14_postcss@8.4.21
defu: 6.1.1
esbuild: 0.15.18
escape-string-regexp: 5.0.0
@ -2332,9 +2332,9 @@ packages:
pathe: 1.0.0
perfect-debounce: 0.1.3
pkg-types: 1.0.1
postcss: 8.4.19
postcss-import: 15.0.1_postcss@8.4.19
postcss-url: 10.1.3_postcss@8.4.19
postcss: 8.4.21
postcss-import: 15.0.1_postcss@8.4.21
postcss-url: 10.1.3_postcss@8.4.21
rollup: 2.79.1
rollup-plugin-visualizer: 5.8.3_rollup@2.79.1
ufo: 1.0.1
@ -2368,9 +2368,9 @@ packages:
'@rollup/plugin-replace': 5.0.1_rollup@2.79.1
'@vitejs/plugin-vue': 3.2.0_vite@3.2.5+vue@3.2.45
'@vitejs/plugin-vue-jsx': 2.1.1_vite@3.2.5+vue@3.2.45
autoprefixer: 10.4.13_postcss@8.4.19
autoprefixer: 10.4.13_postcss@8.4.21
chokidar: 3.5.3
cssnano: 5.1.14_postcss@8.4.19
cssnano: 5.1.14_postcss@8.4.21
defu: 6.1.1
esbuild: 0.15.18
escape-string-regexp: 5.0.0
@ -2386,9 +2386,9 @@ packages:
pathe: 1.0.0
perfect-debounce: 0.1.3
pkg-types: 1.0.1
postcss: 8.4.19
postcss-import: 15.0.1_postcss@8.4.19
postcss-url: 10.1.3_postcss@8.4.19
postcss: 8.4.21
postcss-import: 15.0.1_postcss@8.4.21
postcss-url: 10.1.3_postcss@8.4.21
rollup: 2.79.1
rollup-plugin-visualizer: 5.8.3_rollup@2.79.1
ufo: 1.0.1
@ -4512,7 +4512,7 @@ packages:
engines: {node: '>= 4.0.0'}
dev: true
/autoprefixer/10.4.13_postcss@8.4.19:
/autoprefixer/10.4.13_postcss@8.4.21:
resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==}
engines: {node: ^10 || ^12 || >=14}
hasBin: true
@ -4524,7 +4524,7 @@ packages:
fraction.js: 4.2.0
normalize-range: 0.1.2
picocolors: 1.0.0
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
@ -5150,13 +5150,13 @@ packages:
engines: {node: '>=8'}
dev: true
/css-declaration-sorter/6.3.1_postcss@8.4.19:
/css-declaration-sorter/6.3.1_postcss@8.4.21:
resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==}
engines: {node: ^10 || ^12 || >=14}
peerDependencies:
postcss: ^8.0.9
dependencies:
postcss: 8.4.19
postcss: 8.4.21
dev: true
/css-select/4.3.0:
@ -5204,62 +5204,62 @@ packages:
resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==}
dev: true
/cssnano-preset-default/5.2.13_postcss@8.4.19:
/cssnano-preset-default/5.2.13_postcss@8.4.21:
resolution: {integrity: sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
css-declaration-sorter: 6.3.1_postcss@8.4.19
cssnano-utils: 3.1.0_postcss@8.4.19
postcss: 8.4.19
postcss-calc: 8.2.4_postcss@8.4.19
postcss-colormin: 5.3.0_postcss@8.4.19
postcss-convert-values: 5.1.3_postcss@8.4.19
postcss-discard-comments: 5.1.2_postcss@8.4.19
postcss-discard-duplicates: 5.1.0_postcss@8.4.19
postcss-discard-empty: 5.1.1_postcss@8.4.19
postcss-discard-overridden: 5.1.0_postcss@8.4.19
postcss-merge-longhand: 5.1.7_postcss@8.4.19
postcss-merge-rules: 5.1.3_postcss@8.4.19
postcss-minify-font-values: 5.1.0_postcss@8.4.19
postcss-minify-gradients: 5.1.1_postcss@8.4.19
postcss-minify-params: 5.1.4_postcss@8.4.19
postcss-minify-selectors: 5.2.1_postcss@8.4.19
postcss-normalize-charset: 5.1.0_postcss@8.4.19
postcss-normalize-display-values: 5.1.0_postcss@8.4.19
postcss-normalize-positions: 5.1.1_postcss@8.4.19
postcss-normalize-repeat-style: 5.1.1_postcss@8.4.19
postcss-normalize-string: 5.1.0_postcss@8.4.19
postcss-normalize-timing-functions: 5.1.0_postcss@8.4.19
postcss-normalize-unicode: 5.1.1_postcss@8.4.19
postcss-normalize-url: 5.1.0_postcss@8.4.19
postcss-normalize-whitespace: 5.1.1_postcss@8.4.19
postcss-ordered-values: 5.1.3_postcss@8.4.19
postcss-reduce-initial: 5.1.1_postcss@8.4.19
postcss-reduce-transforms: 5.1.0_postcss@8.4.19
postcss-svgo: 5.1.0_postcss@8.4.19
postcss-unique-selectors: 5.1.1_postcss@8.4.19
css-declaration-sorter: 6.3.1_postcss@8.4.21
cssnano-utils: 3.1.0_postcss@8.4.21
postcss: 8.4.21
postcss-calc: 8.2.4_postcss@8.4.21
postcss-colormin: 5.3.0_postcss@8.4.21
postcss-convert-values: 5.1.3_postcss@8.4.21
postcss-discard-comments: 5.1.2_postcss@8.4.21
postcss-discard-duplicates: 5.1.0_postcss@8.4.21
postcss-discard-empty: 5.1.1_postcss@8.4.21
postcss-discard-overridden: 5.1.0_postcss@8.4.21
postcss-merge-longhand: 5.1.7_postcss@8.4.21
postcss-merge-rules: 5.1.3_postcss@8.4.21
postcss-minify-font-values: 5.1.0_postcss@8.4.21
postcss-minify-gradients: 5.1.1_postcss@8.4.21
postcss-minify-params: 5.1.4_postcss@8.4.21
postcss-minify-selectors: 5.2.1_postcss@8.4.21
postcss-normalize-charset: 5.1.0_postcss@8.4.21
postcss-normalize-display-values: 5.1.0_postcss@8.4.21
postcss-normalize-positions: 5.1.1_postcss@8.4.21
postcss-normalize-repeat-style: 5.1.1_postcss@8.4.21
postcss-normalize-string: 5.1.0_postcss@8.4.21
postcss-normalize-timing-functions: 5.1.0_postcss@8.4.21
postcss-normalize-unicode: 5.1.1_postcss@8.4.21
postcss-normalize-url: 5.1.0_postcss@8.4.21
postcss-normalize-whitespace: 5.1.1_postcss@8.4.21
postcss-ordered-values: 5.1.3_postcss@8.4.21
postcss-reduce-initial: 5.1.1_postcss@8.4.21
postcss-reduce-transforms: 5.1.0_postcss@8.4.21
postcss-svgo: 5.1.0_postcss@8.4.21
postcss-unique-selectors: 5.1.1_postcss@8.4.21
dev: true
/cssnano-utils/3.1.0_postcss@8.4.19:
/cssnano-utils/3.1.0_postcss@8.4.21:
resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
dev: true
/cssnano/5.1.14_postcss@8.4.19:
/cssnano/5.1.14_postcss@8.4.21:
resolution: {integrity: sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
cssnano-preset-default: 5.2.13_postcss@8.4.19
cssnano-preset-default: 5.2.13_postcss@8.4.21
lilconfig: 2.0.6
postcss: 8.4.19
postcss: 8.4.21
yaml: 1.10.2
dev: true
@ -9614,17 +9614,17 @@ packages:
tslib: 2.4.0
dev: false
/postcss-calc/8.2.4_postcss@8.4.19:
/postcss-calc/8.2.4_postcss@8.4.21:
resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
peerDependencies:
postcss: ^8.2.2
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-selector-parser: 6.0.11
postcss-value-parser: 4.2.0
dev: true
/postcss-colormin/5.3.0_postcss@8.4.19:
/postcss-colormin/5.3.0_postcss@8.4.21:
resolution: {integrity: sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
@ -9633,18 +9633,18 @@ packages:
browserslist: 4.21.4
caniuse-api: 3.0.0
colord: 2.9.3
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
/postcss-convert-values/5.1.3_postcss@8.4.19:
/postcss-convert-values/5.1.3_postcss@8.4.21:
resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
browserslist: 4.21.4
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
@ -9664,40 +9664,40 @@ packages:
postcss: ^8.2.14
dev: true
/postcss-discard-comments/5.1.2_postcss@8.4.19:
/postcss-discard-comments/5.1.2_postcss@8.4.21:
resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
dev: true
/postcss-discard-duplicates/5.1.0_postcss@8.4.19:
/postcss-discard-duplicates/5.1.0_postcss@8.4.21:
resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
dev: true
/postcss-discard-empty/5.1.1_postcss@8.4.19:
/postcss-discard-empty/5.1.1_postcss@8.4.21:
resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
dev: true
/postcss-discard-overridden/5.1.0_postcss@8.4.19:
/postcss-discard-overridden/5.1.0_postcss@8.4.21:
resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
dev: true
/postcss-import-resolver/2.0.0:
@ -9706,30 +9706,30 @@ packages:
enhanced-resolve: 4.5.0
dev: true
/postcss-import/15.0.1_postcss@8.4.19:
/postcss-import/15.0.1_postcss@8.4.21:
resolution: {integrity: sha512-UGlvk8EgT7Gm/Ndf9xZHnzr8xm8P54N8CBWLtcY5alP+YxlEge/Rv78etQyevZs3qWTE9If13+Bo6zATBrPOpA==}
engines: {node: '>=14.0.0'}
peerDependencies:
postcss: ^8.0.0
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.1
dev: true
/postcss-merge-longhand/5.1.7_postcss@8.4.19:
/postcss-merge-longhand/5.1.7_postcss@8.4.21:
resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
stylehacks: 5.1.1_postcss@8.4.19
stylehacks: 5.1.1_postcss@8.4.21
dev: true
/postcss-merge-rules/5.1.3_postcss@8.4.19:
/postcss-merge-rules/5.1.3_postcss@8.4.21:
resolution: {integrity: sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
@ -9737,52 +9737,52 @@ packages:
dependencies:
browserslist: 4.21.4
caniuse-api: 3.0.0
cssnano-utils: 3.1.0_postcss@8.4.19
postcss: 8.4.19
cssnano-utils: 3.1.0_postcss@8.4.21
postcss: 8.4.21
postcss-selector-parser: 6.0.11
dev: true
/postcss-minify-font-values/5.1.0_postcss@8.4.19:
/postcss-minify-font-values/5.1.0_postcss@8.4.21:
resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
/postcss-minify-gradients/5.1.1_postcss@8.4.19:
/postcss-minify-gradients/5.1.1_postcss@8.4.21:
resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
colord: 2.9.3
cssnano-utils: 3.1.0_postcss@8.4.19
postcss: 8.4.19
cssnano-utils: 3.1.0_postcss@8.4.21
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
/postcss-minify-params/5.1.4_postcss@8.4.19:
/postcss-minify-params/5.1.4_postcss@8.4.21:
resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
browserslist: 4.21.4
cssnano-utils: 3.1.0_postcss@8.4.19
postcss: 8.4.19
cssnano-utils: 3.1.0_postcss@8.4.21
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
/postcss-minify-selectors/5.2.1_postcss@8.4.19:
/postcss-minify-selectors/5.2.1_postcss@8.4.21:
resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-selector-parser: 6.0.11
dev: true
@ -9795,109 +9795,109 @@ packages:
postcss-selector-parser: 6.0.11
dev: true
/postcss-normalize-charset/5.1.0_postcss@8.4.19:
/postcss-normalize-charset/5.1.0_postcss@8.4.21:
resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
dev: true
/postcss-normalize-display-values/5.1.0_postcss@8.4.19:
/postcss-normalize-display-values/5.1.0_postcss@8.4.21:
resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
/postcss-normalize-positions/5.1.1_postcss@8.4.19:
/postcss-normalize-positions/5.1.1_postcss@8.4.21:
resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
/postcss-normalize-repeat-style/5.1.1_postcss@8.4.19:
/postcss-normalize-repeat-style/5.1.1_postcss@8.4.21:
resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
/postcss-normalize-string/5.1.0_postcss@8.4.19:
/postcss-normalize-string/5.1.0_postcss@8.4.21:
resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
/postcss-normalize-timing-functions/5.1.0_postcss@8.4.19:
/postcss-normalize-timing-functions/5.1.0_postcss@8.4.21:
resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
/postcss-normalize-unicode/5.1.1_postcss@8.4.19:
/postcss-normalize-unicode/5.1.1_postcss@8.4.21:
resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
browserslist: 4.21.4
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
/postcss-normalize-url/5.1.0_postcss@8.4.19:
/postcss-normalize-url/5.1.0_postcss@8.4.21:
resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
normalize-url: 6.1.0
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
/postcss-normalize-whitespace/5.1.1_postcss@8.4.19:
/postcss-normalize-whitespace/5.1.1_postcss@8.4.21:
resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
/postcss-ordered-values/5.1.3_postcss@8.4.19:
/postcss-ordered-values/5.1.3_postcss@8.4.21:
resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
cssnano-utils: 3.1.0_postcss@8.4.19
postcss: 8.4.19
cssnano-utils: 3.1.0_postcss@8.4.21
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
/postcss-reduce-initial/5.1.1_postcss@8.4.19:
/postcss-reduce-initial/5.1.1_postcss@8.4.21:
resolution: {integrity: sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
@ -9905,16 +9905,16 @@ packages:
dependencies:
browserslist: 4.21.4
caniuse-api: 3.0.0
postcss: 8.4.19
postcss: 8.4.21
dev: true
/postcss-reduce-transforms/5.1.0_postcss@8.4.19:
/postcss-reduce-transforms/5.1.0_postcss@8.4.21:
resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
dev: true
@ -9926,28 +9926,28 @@ packages:
util-deprecate: 1.0.2
dev: true
/postcss-svgo/5.1.0_postcss@8.4.19:
/postcss-svgo/5.1.0_postcss@8.4.21:
resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-value-parser: 4.2.0
svgo: 2.8.0
dev: true
/postcss-unique-selectors/5.1.1_postcss@8.4.19:
/postcss-unique-selectors/5.1.1_postcss@8.4.21:
resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
postcss: 8.4.19
postcss: 8.4.21
postcss-selector-parser: 6.0.11
dev: true
/postcss-url/10.1.3_postcss@8.4.19:
/postcss-url/10.1.3_postcss@8.4.21:
resolution: {integrity: sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==}
engines: {node: '>=10'}
peerDependencies:
@ -9956,7 +9956,7 @@ packages:
make-dir: 3.1.0
mime: 2.5.2
minimatch: 3.0.8
postcss: 8.4.19
postcss: 8.4.21
xxhashjs: 0.2.2
dev: true
@ -9964,15 +9964,6 @@ packages:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
dev: true
/postcss/8.4.19:
resolution: {integrity: sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.4
picocolors: 1.0.0
source-map-js: 1.0.2
dev: true
/postcss/8.4.21:
resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==}
engines: {node: ^10 || ^12 || >=14}
@ -10749,6 +10740,10 @@ packages:
object-inspect: 1.12.2
dev: true
/siginfo/2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
dev: true
/signal-exit/3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
@ -10923,6 +10918,10 @@ packages:
deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
dev: true
/stackback/0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
dev: true
/stale-dep/0.3.1:
resolution: {integrity: sha512-mBoA6pZRWXA5jL1Yg6cd1gVQ7OPsZD7wkgSZUxjBxohepLolq8s/w0PKEmI35TIk2ggXKhW3JR35JQyS9J8B+g==}
engines: {node: '>=14.19.0'}
@ -11115,14 +11114,14 @@ packages:
tslib: 2.4.0
dev: false
/stylehacks/5.1.1_postcss@8.4.19:
/stylehacks/5.1.1_postcss@8.4.21:
resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
engines: {node: ^10 || ^12 || >=14.0}
peerDependencies:
postcss: ^8.2.15
dependencies:
browserslist: 4.21.4
postcss: 8.4.19
postcss: 8.4.21
postcss-selector-parser: 6.0.11
dev: true
@ -12006,8 +12005,8 @@ packages:
- terser
dev: true
/vite-node/0.27.0_@types+node@18.11.18:
resolution: {integrity: sha512-O1o9joT0qCGx5Om6W0VNLr7M00ttrnFlfZX2d+oxt2T9oZ9DvYSv8kDRhNJDVhAgNgUm3Tc0h/+jppNf3mVKbA==}
/vite-node/0.27.1_@types+node@18.11.18:
resolution: {integrity: sha512-d6+ue/3NzsfndWaPbYh/bFkHbmAWfDXI4B874zRx+WREnG6CUHUbBC8lKaRYZjeR6gCPN5m1aVNNRXBYICA9XA==}
engines: {node: '>=v14.16.0'}
hasBin: true
dependencies:
@ -12225,7 +12224,7 @@ packages:
fsevents: 2.3.2
dev: true
/vitest-environment-nuxt/0.4.0_vitest@0.27.0:
/vitest-environment-nuxt/0.4.0_vitest@0.27.1:
resolution: {integrity: sha512-uRg/jvgHjzUGhkWTWtFEUlImfA3VScZG2EGlRvQk9ODspUw0a9hTz9Yz9tXQTsChoE2n7yi44TJdCVmK7iHxUA==}
peerDependencies:
vitest: ^0.24.5 || ^0.26.0 || ^0.27.0
@ -12239,15 +12238,15 @@ packages:
magic-string: 0.27.0
ofetch: 1.0.0
unenv: 1.0.1
vitest: 0.27.0_jsdom@21.0.0
vitest: 0.27.1_jsdom@21.0.0
transitivePeerDependencies:
- encoding
- rollup
- supports-color
dev: true
/vitest/0.27.0_jsdom@21.0.0:
resolution: {integrity: sha512-BnOa7T6CnXVC6UgcAsvFOZ2Dtvqkt+/Nl6CRgh4qVT70vElf65XwEL6zMRyTF+h2QXJziEkxYdrLo5WCxckMLQ==}
/vitest/0.27.1_jsdom@21.0.0:
resolution: {integrity: sha512-1sIpQ1DVFTEn7c1ici1XHcVfdU4nKiBmPtPAtGKJJJLuJjojTv/OHGgcf69P57alM4ty8V4NMv+7Yoi5Cxqx9g==}
engines: {node: '>=v14.16.0'}
hasBin: true
peerDependencies:
@ -12285,7 +12284,8 @@ packages:
tinypool: 0.3.0
tinyspy: 1.0.2
vite: 3.2.5_@types+node@18.11.18
vite-node: 0.27.0_@types+node@18.11.18
vite-node: 0.27.1_@types+node@18.11.18
why-is-node-running: 2.2.2
transitivePeerDependencies:
- less
- sass
@ -12615,6 +12615,15 @@ packages:
dependencies:
isexe: 2.0.0
/why-is-node-running/2.2.2:
resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==}
engines: {node: '>=8'}
hasBin: true
dependencies:
siginfo: 2.0.0
stackback: 0.0.2
dev: true
/wide-align/1.1.5:
resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
dependencies: