feat(theme-yun): optimize home entry animation

This commit is contained in:
YunYouJun 2024-10-06 22:15:48 +08:00
parent 7bb3ee6a82
commit 9b082dd9eb
10 changed files with 251 additions and 136 deletions

View File

@ -1,5 +1,5 @@
---
cover: https://cdn.jsdelivr.net/gh/YunYouJun/cdn/img/bg/girl-in-water-tank.webp
cover: https://cos.yunyoujun.cn/img/bg/girl-in-water-tank.webp
title: Why Valaxy
title_zh: 为什么选 Valaxy
date: 2022-03-22

View File

@ -11,6 +11,7 @@ const props = defineProps<{
const tagRef = ref<HTMLElement>()
useYunSpringAnimation(tagRef, {
i: props.i || 0,
delay: 25,
})
</script>

View File

@ -5,7 +5,7 @@
<div
flex="~ col"
class="justify-center items-center absolute bottom-5 md:bottom-12 left-0 right-0"
class="justify-center items-center absolute bottom-$rect-margin left-0 right-0"
>
<PrologueSocialLinks />
</div>

View File

@ -1,16 +1,19 @@
<script setup lang="ts">
// css
import { sleep } from 'valaxy'
import { onMounted, ref } from 'vue'
const props = defineProps<{
delay: number
duration: number
}>()
const destroy = ref(false)
onMounted(() => {
setTimeout(() => {
destroy.value = true
}, props.duration)
const destroy = ref(true)
onMounted(async () => {
await sleep(props.delay)
destroy.value = false
await sleep(props.duration)
destroy.value = true
})
</script>

View File

@ -7,6 +7,7 @@ const siteConfig = useSiteConfig()
<template>
<img
class="rounded-full size-full"
:src="siteConfig.author.avatar" alt="avatar"
:src="siteConfig.author.avatar"
alt="avatar"
>
</template>

View File

@ -1,64 +1,10 @@
<script setup lang="ts">
import { useMotion } from '@vueuse/motion'
import { ref } from 'vue'
import { cubicBezier } from '../../client/constants'
import { useThemeConfig } from '../../composables'
const themeConfig = useThemeConfig()
const showContent = ref(false)
const avatarRef = ref<HTMLElement>()
const motionInstance = useMotion(avatarRef, {
initial: {
borderRadius: '0%',
width: 'var(--total-char-height)',
height: 'var(--total-char-height)',
rotate: 135,
y: '0%',
},
enter: {
borderRadius: '50%',
rotate: 0,
y: '0%',
width: '120px',
height: '120px',
boxShadow: 'none',
transition: {
type: 'keyframes',
ease: cubicBezier.easeIn,
duration: 800,
onComplete: () => {
motionInstance.variant.value = 'leave'
showContent.value = true
},
},
},
leave: {
// y: '-50%',
boxShadow: '0 5px 100px rgba(0, 0, 0, 0.15)',
transition: {
type: 'keyframes',
ease: cubicBezier.easeInOut,
duration: 500,
},
},
})
const introRef = ref<HTMLElement>()
useMotion(introRef, {
initial: {
y: '0%',
},
enter: {
y: 'calc(-50%)',
transition: {
delay: 800,
type: 'keyframes',
ease: cubicBezier.easeInOut,
duration: 400,
},
},
})
</script>
<template>
@ -72,69 +18,77 @@ useMotion(introRef, {
<slot />
<div
ref="introRef"
flex="~ col center"
class="info relative"
class="info relative duration-800 transition-cubic-bezier-ease-in"
:class="{
'translate-y--1/2': showContent,
}"
>
<div
ref="avatarRef" flex="~ col" class="absolute yun-square bg-$va-c-text square-rotate w-full"
<Transition
enter-from-class="enter-from"
enter-to-class="enter-to"
appear
@after-appear="showContent = true"
>
<LineBurstEffects
class="absolute top-0 left-0 right-0 bottom-0 size-full scale-200"
:duration="800"
/>
<YunAuthorAvatar />
</div>
<div
v-if="showContent"
v-motion
:initial="{
opacity: 0,
y: '0',
}"
:enter="{
opacity: 1,
y: 'calc(50% + 60px)',
transition: {
type: 'keyframes',
ease: cubicBezier.easeInOut,
duration: 400,
},
}"
>
<YunAuthorName class="mt-3" />
<YunAuthorIntro />
<YunDivider />
<div flex="~ col" class="gap-2 items-center justify-center">
<YunSiteTitle />
<YunSiteSubtitle />
<YunSiteDescription />
</div>
<YunDivider />
<div
class="mt-4 flex-center w-50 md:w-100 m-auto gap-2"
flex="~ wrap"
p="x-$rect-margin"
flex="~ col"
class="absolute yun-square bg-$va-c-text square-rotate w-full z-1"
>
<YunSiteLinkItem
:page="{
name: '博客文章',
icon: 'i-ri-article-line',
url: '/posts/',
}"
/>
<slot />
<YunSiteLinkItem
v-for="item, i in themeConfig.pages"
:key="i" :page="item"
<LineBurstEffects
class="absolute top-0 left-0 right-0 bottom-0 size-full scale-200"
:delay="1000"
:duration="600"
/>
<Transition
enter-from-class="op-0"
enter-to-class="op-100"
enter-active-class="transition-400 delay-400"
appear
>
<YunAuthorAvatar />
</Transition>
</div>
</div>
</Transition>
<Transition
enter-from-class="translate-y-0"
enter-active-class="duration-800 transition-cubic-bezier-ease-in"
appear
>
<div v-if="showContent" class="translate-y-[calc(50%+50px)] animate-fade-in">
<YunAuthorName class="mt-3" />
<YunAuthorIntro />
<YunDivider />
<div flex="~ col" class="gap-2 items-center justify-center">
<YunSiteTitle />
<YunSiteSubtitle />
<YunSiteDescription />
</div>
<YunDivider />
<div
class="mt-4 flex-center w-64 md:w-100 m-auto gap-2"
flex="~ wrap"
p="x-$rect-margin"
>
<YunSiteLinkItem
:page="{
name: '博客文章',
icon: 'i-ri-article-line',
url: '/posts/',
}"
/>
<slot />
<YunSiteLinkItem
v-for="item, i in themeConfig.pages"
:key="i" :page="item"
/>
</div>
</div>
</Transition>
</div>
</div>
</template>
@ -142,4 +96,21 @@ useMotion(introRef, {
<style lang="scss">
@use 'sass:map';
@use 'valaxy-theme-yun/styles/vars.scss' as *;
.yun-square {
transition: all 0.8s map.get($cubic-bezier, 'ease-in');
border-radius: 50%;
transform: rotate(0deg) translateY(0%);
width: 100px;
height: 100px;
box-shadow: 0 5px 100px rgb(0 0 0 / 0.15);
&.enter-from {
border-radius: 0%;
width: var(--total-char-height);
height: var(--total-char-height);
transform: rotate(135deg) translateY(0%);
box-shadow: none;
}
}
</style>

View File

@ -12,6 +12,10 @@ export function useYunSpringAnimation(target: MaybeRef<HTMLElement | undefined>,
i: number
y?: number
duration?: number
/**
* delay in ms
*/
delay?: number
}) {
useMotion(target, {
initial: {
@ -22,7 +26,7 @@ export function useYunSpringAnimation(target: MaybeRef<HTMLElement | undefined>,
opacity: 1,
y: 0,
transition: {
delay: options.i * 50,
delay: options.i * (options.delay || 50),
type: 'spring',
ease: cubicBezier.easeIn,
damping: 8,

View File

@ -4,6 +4,14 @@
@use 'sass:map';
@use '../vars.scss' as *;
.transition-cubic-bezier-ease-in {
transition-timing-function: map.get($cubic-bezier, 'ease-in');
}
.transition-cubic-bezier-ease-in-out {
transition-timing-function: map.get($cubic-bezier, 'ease-in-out');
}
.v-enter-active,
.v-leave-active {
transition: opacity .2s map.get($cubic-bezier, 'ease-in');

View File

@ -121,7 +121,7 @@
"pinia": "^2.2.4",
"qrcode": "^1.5.4",
"sass": "^1.79.4",
"shiki": "^1.21.0",
"shiki": "^1.21.1",
"star-markdown-css": "^0.5.2",
"unocss": "^0.63.3",
"unplugin-vue-components": "^0.27.4",
@ -134,7 +134,7 @@
"vite-ssg": "0.23.7",
"vite-ssg-sitemap": "0.6.1",
"vue": "^3.5.11",
"vue-i18n": "^10.0.3",
"vue-i18n": "^10.0.4",
"vue-router": "^4.4.5",
"yargs": "^17.7.2"
},

View File

@ -272,7 +272,7 @@ importers:
dependencies:
'@rollup/pluginutils':
specifier: ^5.1.2
version: 5.1.2(rollup@4.24.0)
version: 5.1.2(rollup@3.29.5)
axios:
specifier: ^1.7.7
version: 1.7.7(debug@4.3.7)
@ -318,7 +318,7 @@ importers:
version: 2.0.0(sass@1.79.4)(typescript@5.6.2)(vue-tsc@2.0.17(typescript@5.6.2))
unplugin-vue-router:
specifier: ^0.10.8
version: 0.10.8(rollup@4.24.0)(vue-router@4.4.5(vue@3.5.11(typescript@5.6.2)))(vue@3.5.11(typescript@5.6.2))
version: 0.10.8(rollup@3.29.5)(vue-router@4.4.5(vue@3.5.11(typescript@5.6.2)))(vue@3.5.11(typescript@5.6.2))
vite:
specifier: ^5.4.8
version: 5.4.8(@types/node@22.7.4)(sass@1.79.4)
@ -339,7 +339,7 @@ importers:
version: 1.2.0
'@intlify/unplugin-vue-i18n':
specifier: '4'
version: 4.0.0(rollup@4.24.0)(vue-i18n@10.0.3(vue@3.5.11(typescript@5.6.2)))
version: 4.0.0(rollup@4.24.0)(vue-i18n@10.0.4(vue@3.5.11(typescript@5.6.2)))
'@types/katex':
specifier: ^0.16.7
version: 0.16.7
@ -503,8 +503,8 @@ importers:
specifier: ^1.79.4
version: 1.79.4
shiki:
specifier: ^1.21.0
version: 1.21.0
specifier: ^1.21.1
version: 1.21.1
star-markdown-css:
specifier: ^0.5.2
version: 0.5.2
@ -542,8 +542,8 @@ importers:
specifier: ^3.5.11
version: 3.5.11(typescript@5.6.2)
vue-i18n:
specifier: ^10.0.3
version: 10.0.3(vue@3.5.11(typescript@5.6.2))
specifier: ^10.0.4
version: 10.0.4(vue@3.5.11(typescript@5.6.2))
vue-router:
specifier: ^4.4.5
version: 4.4.5(vue@3.5.11(typescript@5.6.2))
@ -1882,10 +1882,18 @@ packages:
resolution: {integrity: sha512-ysJnTGDtuXPa6R2Ii4JIvfMVvDahUUny3aY8+P4r6/0TYHkblgzIMjV6cAn60em67AB0M7OWNAdcAVfWWeN8Qg==}
engines: {node: '>= 16'}
'@intlify/core-base@10.0.4':
resolution: {integrity: sha512-GG428DkrrWCMhxRMRQZjuS7zmSUzarYcaHJqG9VB8dXAxw4iQDoKVQ7ChJRB6ZtsCsX3Jse1PEUlHrJiyQrOTg==}
engines: {node: '>= 16'}
'@intlify/message-compiler@10.0.3':
resolution: {integrity: sha512-KC2fG8nCzSYmXjHptEt6i/xM3k6S2szsPaHDCRgWKEYAbeHe6JFm6X4KRw3Csy112A8CxpavMi1dh3h7khwV5w==}
engines: {node: '>= 16'}
'@intlify/message-compiler@10.0.4':
resolution: {integrity: sha512-AFbhEo10DP095/45EauinQJ5hJ3rJUmuuqltGguvc3WsvezZN+g8qNHLGWKu60FHQVizMrQY7VJ+zVlBXlQQkQ==}
engines: {node: '>= 16'}
'@intlify/message-compiler@9.14.1':
resolution: {integrity: sha512-MY8hwukJBnXvGAncVKlHsqKDQ5ZcQx4peqEmI8wBUTXn4pezrtTGYXNoz81cLyEEHB+L/zlKWVBSh5TiX4gYoQ==}
engines: {node: '>= 16'}
@ -1894,6 +1902,10 @@ packages:
resolution: {integrity: sha512-PWxrCb6fDlnoGLnXLlWu6d7o/HdWACB9TjRnpLro+9uyfqgWA9hvqg5vekcPRyraTieV5srCbTk/ldYw9V3LHw==}
engines: {node: '>= 16'}
'@intlify/shared@10.0.4':
resolution: {integrity: sha512-ukFn0I01HsSgr3VYhYcvkTCLS7rGa0gw4A4AMpcy/A9xx/zRJy7PS2BElMXLwUazVFMAr5zuiTk3MQeoeGXaJg==}
engines: {node: '>= 16'}
'@intlify/shared@9.14.1':
resolution: {integrity: sha512-XjHu6PEQup9MnP1x0W9y0nXXfq9jFftAYSfV11hryjtH4XqXP8HrzMvXI+ZVifF+jZLszaTzIhvukllplxTQTg==}
engines: {node: '>= 16'}
@ -2241,21 +2253,36 @@ packages:
'@shikijs/core@1.21.0':
resolution: {integrity: sha512-zAPMJdiGuqXpZQ+pWNezQAk5xhzRXBNiECFPcJLtUdsFM3f//G95Z15EHTnHchYycU8kIIysqGgxp8OVSj1SPQ==}
'@shikijs/core@1.21.1':
resolution: {integrity: sha512-scBQo4V4O4WZLEDg11e75UPmXoCMq4Ya2A16U6efi/aTiR4o7T/GMNWZs2rq1U8dEvFKGxJZxiUy+tXgmr/4vw==}
'@shikijs/engine-javascript@1.21.0':
resolution: {integrity: sha512-jxQHNtVP17edFW4/0vICqAVLDAxmyV31MQJL4U/Kg+heQALeKYVOWo0sMmEZ18FqBt+9UCdyqGKYE7bLRtk9mg==}
'@shikijs/engine-javascript@1.21.1':
resolution: {integrity: sha512-29EG4KYKlAona8yikEx8uoKbK7N2YoXUO26LS1GOIxpMMIAlQS9UFONg95lkGmIfp1rRcvCvSpYYIJ/blsQxvg==}
'@shikijs/engine-oniguruma@1.21.0':
resolution: {integrity: sha512-AIZ76XocENCrtYzVU7S4GY/HL+tgHGbVU+qhiDyNw1qgCA5OSi4B4+HY4BtAoJSMGuD/L5hfTzoRVbzEm2WTvg==}
'@shikijs/engine-oniguruma@1.21.1':
resolution: {integrity: sha512-PvfEtXCDbQZc9ud0SC0bPiuMbul44Cv0Ky2go4SsvVkYAAKYJsMe/Hx7nxThW8yS0r+w8USa0WfOtQKsD9DU9A==}
'@shikijs/transformers@1.21.0':
resolution: {integrity: sha512-aA+XGGSzipcvqdsOYL8l6Q2RYiMuJNdhdt9eZnkJmW+wjSOixN/I7dBq3fISwvEMDlawrtuXM3eybLCEC+Fjlg==}
'@shikijs/types@1.21.0':
resolution: {integrity: sha512-tzndANDhi5DUndBtpojEq/42+dpUF2wS7wdCDQaFtIXm3Rd1QkrcVgSSRLOvEwexekihOXfbYJINW37g96tJRw==}
'@shikijs/types@1.21.1':
resolution: {integrity: sha512-yLuTJTCHmYznerJ0nxF+f2rBKHQf2FMAd08QL/3du2xNBy/7yQ8CjuKN4Zc+Pk0vfIFzdBoxdzvEXE4JtXoR4Q==}
'@shikijs/vscode-textmate@9.2.2':
resolution: {integrity: sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==}
'@shikijs/vscode-textmate@9.3.0':
resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==}
'@sindresorhus/merge-streams@2.3.0':
resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
engines: {node: '>=18'}
@ -7393,6 +7420,9 @@ packages:
shiki@1.21.0:
resolution: {integrity: sha512-apCH5BoWTrmHDPGgg3RF8+HAAbEL/CdbYr8rMw7eIrdhCkZHdVGat5mMNlRtd1erNG01VPMIKHNQ0Pj2HMAiog==}
shiki@1.21.1:
resolution: {integrity: sha512-jSOKRHyQJxGOW3kJflmwzHJbp/kjg6hP8LYuVbCPw5oyX+fSNNoCywvcCD3w9eHbj2rvNljt7YMa5BP5Xi+nHg==}
side-channel@1.0.6:
resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
engines: {node: '>= 0.4'}
@ -8510,6 +8540,12 @@ packages:
peerDependencies:
vue: ^3.0.0
vue-i18n@10.0.4:
resolution: {integrity: sha512-1xkzVxqBLk2ZFOmeI+B5r1J7aD/WtNJ4j9k2mcFcQo5BnOmHBmD7z4/oZohh96AAaRZ4Q7mNQvxc9h+aT+Md3w==}
engines: {node: '>= 16'}
peerDependencies:
vue: ^3.0.0
vue-resize@2.0.0-alpha.1:
resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==}
peerDependencies:
@ -9779,7 +9815,7 @@ snapshots:
dependencies:
'@swc/helpers': 0.5.13
'@intlify/bundle-utils@8.0.0(vue-i18n@10.0.3(vue@3.5.11(typescript@5.6.2)))':
'@intlify/bundle-utils@8.0.0(vue-i18n@10.0.4(vue@3.5.11(typescript@5.6.2)))':
dependencies:
'@intlify/message-compiler': 9.14.1
'@intlify/shared': 9.14.1
@ -9791,18 +9827,28 @@ snapshots:
source-map-js: 1.2.1
yaml-eslint-parser: 1.2.3
optionalDependencies:
vue-i18n: 10.0.3(vue@3.5.11(typescript@5.6.2))
vue-i18n: 10.0.4(vue@3.5.11(typescript@5.6.2))
'@intlify/core-base@10.0.3':
dependencies:
'@intlify/message-compiler': 10.0.3
'@intlify/shared': 10.0.3
'@intlify/core-base@10.0.4':
dependencies:
'@intlify/message-compiler': 10.0.4
'@intlify/shared': 10.0.4
'@intlify/message-compiler@10.0.3':
dependencies:
'@intlify/shared': 10.0.3
source-map-js: 1.2.1
'@intlify/message-compiler@10.0.4':
dependencies:
'@intlify/shared': 10.0.4
source-map-js: 1.2.1
'@intlify/message-compiler@9.14.1':
dependencies:
'@intlify/shared': 9.14.1
@ -9810,11 +9856,13 @@ snapshots:
'@intlify/shared@10.0.3': {}
'@intlify/shared@10.0.4': {}
'@intlify/shared@9.14.1': {}
'@intlify/unplugin-vue-i18n@4.0.0(rollup@4.24.0)(vue-i18n@10.0.3(vue@3.5.11(typescript@5.6.2)))':
'@intlify/unplugin-vue-i18n@4.0.0(rollup@4.24.0)(vue-i18n@10.0.4(vue@3.5.11(typescript@5.6.2)))':
dependencies:
'@intlify/bundle-utils': 8.0.0(vue-i18n@10.0.3(vue@3.5.11(typescript@5.6.2)))
'@intlify/bundle-utils': 8.0.0(vue-i18n@10.0.4(vue@3.5.11(typescript@5.6.2)))
'@intlify/shared': 9.14.1
'@rollup/pluginutils': 5.1.2(rollup@4.24.0)
'@vue/compiler-sfc': 3.5.11
@ -9827,7 +9875,7 @@ snapshots:
source-map-js: 1.2.1
unplugin: 1.14.1
optionalDependencies:
vue-i18n: 10.0.3(vue@3.5.11(typescript@5.6.2))
vue-i18n: 10.0.4(vue@3.5.11(typescript@5.6.2))
transitivePeerDependencies:
- rollup
- supports-color
@ -10234,17 +10282,37 @@ snapshots:
'@types/hast': 3.0.4
hast-util-to-html: 9.0.3
'@shikijs/core@1.21.1':
dependencies:
'@shikijs/engine-javascript': 1.21.1
'@shikijs/engine-oniguruma': 1.21.1
'@shikijs/types': 1.21.1
'@shikijs/vscode-textmate': 9.3.0
'@types/hast': 3.0.4
hast-util-to-html: 9.0.3
'@shikijs/engine-javascript@1.21.0':
dependencies:
'@shikijs/types': 1.21.0
'@shikijs/vscode-textmate': 9.2.2
oniguruma-to-js: 0.4.3
'@shikijs/engine-javascript@1.21.1':
dependencies:
'@shikijs/types': 1.21.1
'@shikijs/vscode-textmate': 9.3.0
oniguruma-to-js: 0.4.3
'@shikijs/engine-oniguruma@1.21.0':
dependencies:
'@shikijs/types': 1.21.0
'@shikijs/vscode-textmate': 9.2.2
'@shikijs/engine-oniguruma@1.21.1':
dependencies:
'@shikijs/types': 1.21.1
'@shikijs/vscode-textmate': 9.3.0
'@shikijs/transformers@1.21.0':
dependencies:
shiki: 1.21.0
@ -10254,8 +10322,15 @@ snapshots:
'@shikijs/vscode-textmate': 9.2.2
'@types/hast': 3.0.4
'@shikijs/types@1.21.1':
dependencies:
'@shikijs/vscode-textmate': 9.3.0
'@types/hast': 3.0.4
'@shikijs/vscode-textmate@9.2.2': {}
'@shikijs/vscode-textmate@9.3.0': {}
'@sindresorhus/merge-streams@2.3.0':
optional: true
@ -10840,6 +10915,19 @@ snapshots:
'@volar/language-core': 2.2.5
path-browserify: 1.0.1
'@vue-macros/common@1.14.0(rollup@3.29.5)(vue@3.5.11(typescript@5.6.2))':
dependencies:
'@babel/types': 7.25.7
'@rollup/pluginutils': 5.1.2(rollup@3.29.5)
'@vue/compiler-sfc': 3.5.11
ast-kit: 1.2.1
local-pkg: 0.5.0
magic-string-ast: 0.6.2
optionalDependencies:
vue: 3.5.11(typescript@5.6.2)
transitivePeerDependencies:
- rollup
'@vue-macros/common@1.14.0(rollup@4.24.0)(vue@3.5.11(typescript@5.6.2))':
dependencies:
'@babel/types': 7.25.7
@ -16345,6 +16433,15 @@ snapshots:
'@shikijs/vscode-textmate': 9.2.2
'@types/hast': 3.0.4
shiki@1.21.1:
dependencies:
'@shikijs/core': 1.21.1
'@shikijs/engine-javascript': 1.21.1
'@shikijs/engine-oniguruma': 1.21.1
'@shikijs/types': 1.21.1
'@shikijs/vscode-textmate': 9.3.0
'@types/hast': 3.0.4
side-channel@1.0.6:
dependencies:
call-bind: 1.0.7
@ -17317,6 +17414,29 @@ snapshots:
- rollup
- webpack-sources
unplugin-vue-router@0.10.8(rollup@3.29.5)(vue-router@4.4.5(vue@3.5.11(typescript@5.6.2)))(vue@3.5.11(typescript@5.6.2)):
dependencies:
'@babel/types': 7.25.7
'@rollup/pluginutils': 5.1.2(rollup@3.29.5)
'@vue-macros/common': 1.14.0(rollup@3.29.5)(vue@3.5.11(typescript@5.6.2))
ast-walker-scope: 0.6.2
chokidar: 3.6.0
fast-glob: 3.3.2
json5: 2.2.3
local-pkg: 0.5.0
magic-string: 0.30.11
mlly: 1.7.1
pathe: 1.1.2
scule: 1.3.0
unplugin: 1.14.1
yaml: 2.5.1
optionalDependencies:
vue-router: 4.4.5(vue@3.5.11(typescript@5.6.2))
transitivePeerDependencies:
- rollup
- vue
- webpack-sources
unplugin-vue-router@0.10.8(rollup@4.24.0)(vue-router@4.4.5(vue@3.5.11(typescript@5.6.2)))(vue@3.5.11(typescript@5.6.2)):
dependencies:
'@babel/types': 7.25.7
@ -17429,7 +17549,7 @@ snapshots:
'@antfu/utils': 0.7.10
'@clack/prompts': 0.7.0
'@iconify-json/ri': 1.2.0
'@intlify/unplugin-vue-i18n': 4.0.0(rollup@4.24.0)(vue-i18n@10.0.3(vue@3.5.11(typescript@5.6.2)))
'@intlify/unplugin-vue-i18n': 4.0.0(rollup@4.24.0)(vue-i18n@10.0.4(vue@3.5.11(typescript@5.6.2)))
'@types/katex': 0.16.7
'@types/luxon': 3.4.2
'@unhead/addons': 1.11.7(rollup@4.24.0)
@ -17484,7 +17604,7 @@ snapshots:
pinia: 2.2.4(typescript@5.6.2)(vue@3.5.11(typescript@5.6.2))
qrcode: 1.5.4
sass: 1.79.4
shiki: 1.21.0
shiki: 1.21.1
star-markdown-css: 0.5.2
unocss: 0.63.3(postcss@8.4.47)(rollup@4.24.0)(vite@5.4.8(@types/node@22.7.4)(sass@1.79.4))
unplugin-vue-components: 0.27.4(@babel/parser@7.25.7)(@nuxt/kit@3.13.2(rollup@4.24.0))(rollup@4.24.0)(vue@3.5.11(typescript@5.6.2))
@ -17497,7 +17617,7 @@ snapshots:
vite-ssg: 0.23.7(critters@0.0.24)(vite@5.4.8(@types/node@22.7.4)(sass@1.79.4))(vue-router@4.4.5(vue@3.5.11(typescript@5.6.2)))(vue@3.5.11(typescript@5.6.2))
vite-ssg-sitemap: 0.6.1
vue: 3.5.11(typescript@5.6.2)
vue-i18n: 10.0.3(vue@3.5.11(typescript@5.6.2))
vue-i18n: 10.0.4(vue@3.5.11(typescript@5.6.2))
vue-router: 4.4.5(vue@3.5.11(typescript@5.6.2))
yargs: 17.7.2
transitivePeerDependencies:
@ -17853,6 +17973,13 @@ snapshots:
'@vue/devtools-api': 6.6.4
vue: 3.5.11(typescript@5.6.2)
vue-i18n@10.0.4(vue@3.5.11(typescript@5.6.2)):
dependencies:
'@intlify/core-base': 10.0.4
'@intlify/shared': 10.0.4
'@vue/devtools-api': 6.6.4
vue: 3.5.11(typescript@5.6.2)
vue-resize@2.0.0-alpha.1(vue@3.5.11(typescript@5.6.2)):
dependencies:
vue: 3.5.11(typescript@5.6.2)