chore: new ui

This commit is contained in:
Neko Ayaka
2024-12-17 01:52:10 +08:00
parent a6e3cf744c
commit 311d52b8ae
9 changed files with 529 additions and 41 deletions
+2
View File
@@ -71,6 +71,7 @@
"@iconify-json/carbon": "^1.2.4",
"@iconify-json/eos-icons": "^1.2.1",
"@iconify-json/lucide": "^1.2.18",
"@iconify-json/mingcute": "^1.2.2",
"@iconify-json/solar": "^1.2.1",
"@iconify-json/svg-spinners": "^1.2.1",
"@intlify/unplugin-vue-i18n": "^6.0.1",
@@ -81,6 +82,7 @@
"@types/three": "^0.170.0",
"@vitejs/plugin-vue": "^5.2.1",
"@vue-macros/volar": "^0.30.7",
"@vueuse/motion": "^2.2.6",
"markdown-it-link-attributes": "^4.0.1",
"unocss-preset-theme": "^0.14.1",
"unplugin-auto-import": "^0.18.6",
@@ -0,0 +1,166 @@
<script setup lang="ts">
import { onBeforeUnmount, onMounted, reactive } from 'vue'
interface Props {
petalCount?: number
refreshInterval?: number
baseColor?: string
}
interface Petal {
id: number
style: {
left: string
top: string
width: string
height: string
animationDuration: string
animationDelay: string
transform: string
}
}
const props = withDefaults(defineProps<Props>(), {
petalCount: 20,
refreshInterval: 30000,
baseColor: '#FFB6C1',
})
const petals = reactive<Petal[]>([])
let animationInterval: number | null = null
function createPetalStyle() {
const size = 8 + Math.random() * 4
return {
left: `${Math.random() * 100}%`,
top: `-${size}px`,
width: `${size}px`,
height: `${size}px`,
animationDuration: `${5 + Math.random() * 5}s`,
animationDelay: `${Math.random() * 5}s`,
transform: `rotate(${Math.random() * 360}deg)`,
}
}
function createPetals() {
petals.length = 0
for (let i = 0; i < props.petalCount; i++) {
petals.push({
id: Date.now() + i,
style: createPetalStyle(),
})
}
}
onMounted(() => {
createPetals()
animationInterval = window.setInterval(createPetals, props.refreshInterval)
})
onBeforeUnmount(() => {
if (animationInterval) {
window.clearInterval(animationInterval)
}
})
</script>
<template>
<div class="sakura-container">
<div class="sakura-bg" />
<div class="pattern-overlay" />
<div class="petals-container">
<div
v-for="petal in petals"
:key="petal.id"
class="sakura-petal"
:style="petal.style"
/>
</div>
<slot />
</div>
</template>
<style scoped>
.sakura-container {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
}
.sakura-bg {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1;
}
.pattern-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 5c1.4-1.4 3.8-1.4 5.2 0L45 14.8c1.4 1.4 1.4 3.8 0 5.2L35.2 30l9.8 9.8c1.4 1.4 1.4 3.8 0 5.2L35.2 55c-1.4 1.4-3.8 1.4-5.2 0L20.2 45c-1.4-1.4-1.4-3.8 0-5.2L30 30l-9.8-9.8c-1.4-1.4-1.4-3.8 0-5.2L30 5z' fill='%23FFB6C1' fill-opacity='0.1'/%3E%3C/svg%3E");
opacity: 0.5;
animation: patternFloat 20s linear infinite;
pointer-events: none;
z-index: 2;
}
.petals-container {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 3;
pointer-events: none;
}
.sakura-petal {
position: absolute;
background: v-bind('props.baseColor');
border-radius: 150% 0 150% 0;
opacity: 0.6;
pointer-events: none;
filter: blur(1px);
animation-name: fall, drift;
animation-timing-function: linear, ease-in-out;
animation-iteration-count: infinite;
}
@keyframes fall {
0% {
top: -10px;
transform: translateX(0) rotate(0deg);
}
100% {
top: 100vh;
transform: translateX(100px) rotate(360deg);
}
}
@keyframes drift {
0% {
transform: translateX(0) rotate(0deg);
}
50% {
transform: translateX(50px) rotate(180deg);
}
100% {
transform: translateX(0) rotate(360deg);
}
}
@keyframes patternFloat {
0% {
background-position: 0 0;
}
100% {
background-position: 60px 60px;
}
}
</style>
@@ -10,13 +10,11 @@ Hero Patterns | Free repeatable SVG background patterns for your web projects
https://heropatterns.com/
*/
.tic-tac-toe-background-container {
background-color: #ffffff;
background-color: transparent;
background-image: url("data:image/svg+xml,%3Csvg width='64' height='64' viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 16c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm0-2c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zm33.414-6l5.95-5.95L45.95.636 40 6.586 34.05.636 32.636 2.05 38.586 8l-5.95 5.95 1.414 1.414L40 9.414l5.95 5.95 1.414-1.414L41.414 8zM40 48c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm0-2c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zM9.414 40l5.95-5.95-1.414-1.414L8 38.586l-5.95-5.95L.636 34.05 6.586 40l-5.95 5.95 1.414 1.414L8 41.414l5.95 5.95 1.414-1.414L9.414 40z' fill='%23ffcfe1' fill-opacity='0.4' fill-rule='evenodd'/%3E%3C/svg%3E");
background-position: 0 0;
position: relative;
overflow: hidden;
cursor: pointer;
transform: scale(1);
transition: transform 0.3s ease;
}
@@ -0,0 +1,81 @@
<script setup lang="ts">
import SakuraPetal from '../Backgrounds/SakuraPetal.vue'
import ChatHistory from '../Widgets/ChatHistory.vue'
const tab = ref<'chat' | 'custom' | 'clothes'>('chat')
</script>
<template>
<div flex="~ col" h-full items-center pt-4>
<fieldset flex="~ row" w-fit rounded-lg>
<label
:class="[
tab === 'chat' ? 'bg-pink-100 dark:bg-pink-400/20' : '',
tab === 'chat' ? 'text-pink-500 dark:text-pink-500' : '',
]"
flex="~ row"
:checked="tab === 'chat'"
:aria-checked="tab === 'chat'"
border="solid l-2 t-2 b-2 pink-100 dark:pink-400/20"
bg="hover:pink-100 dark:hover:pink-400/20"
text="pink-300 hover:pink-500 dark:pink-300/50 dark:hover:pink-500"
transition="all duration-250 ease-in-out"
cursor-pointer items-center gap-1 rounded-l-lg px-2
>
<input v-model="tab" type="radio" name="tab" value="chat" hidden>
<div i-solar:dialog-2-bold-duotone text="2xl" transform="translate-y--2" />
<div flex="~ row" items-center>
<span min-w="3em">Chat</span>
</div>
</label>
<label
:class="[
tab === 'custom' ? 'bg-pink-100 dark:bg-pink-400/20' : '',
tab === 'custom' ? 'text-pink-500 dark:text-pink-500' : '',
]"
flex="~ row"
:checked="tab === 'custom'"
:aria-checked="tab === 'custom'"
border="solid t-2 b-2 pink-100 dark:pink-400/20"
bg="hover:pink-100 dark:hover:pink-400/20"
text="pink-300 hover:pink-500 dark:pink-300/50 dark:hover:pink-500"
transition="all duration-250 ease-in-out"
cursor-pointer items-center gap-1 px-2
>
<input v-model="tab" type="radio" name="tab" value="custom" hidden>
<div i-solar:star-fall-2-bold-duotone text="2xl" transform="translate-y--2" />
<div flex="~ row" items-center>
<span>Custom</span>
</div>
</label>
<label
:class="[
tab === 'clothes' ? 'bg-pink-100 dark:bg-pink-400/20' : '',
tab === 'clothes' ? 'text-pink-500 dark:text-pink-500' : '',
]"
flex="~ row"
:checked="tab === 'clothes'"
:aria-checked="tab === 'clothes'"
border="solid r-2 t-2 b-2 pink-100 dark:pink-400/20"
bg="hover:pink-100 dark:hover:pink-400/20"
text="pink-300 hover:pink-500 dark:pink-300/50 dark:hover:pink-500"
transition="all duration-250 ease-in-out"
cursor-pointer items-center gap-1 rounded-r-lg px-2
>
<input v-model="tab" type="radio" name="tab" value="clothes" hidden>
<div i-solar:magic-stick-3-bold-duotone text="2xl" transform="translate-y--2" />
<div flex="~ row" items-center>
<span>Clothes</span>
</div>
</label>
</fieldset>
<div h-full max-h="[85vh]" w-full px-12 py-4>
<SakuraPetal border="solid 2 pink-100 dark:pink-400/20" h-full w-full overflow-scroll rounded-xl p-4>
<ChatHistory />
</SakuraPetal>
</div>
</div>
</template>
<style lang="css" scoped>
</style>
@@ -1,10 +1,8 @@
<script setup lang="ts">
import { storeToRefs } from 'pinia'
import { ref } from 'vue'
import Avatar from '../../assets/live2d/models/hiyori_free_zh/avatar.png'
import { useMarkdown } from '../../composables/markdown'
import { useSpeakingStore } from '../../stores/audio'
import { useChatStore } from '../../stores/chat'
const chatHistoryRef = ref<HTMLDivElement>()
@@ -14,7 +12,6 @@ const bounding = useElementBounding(chatHistoryRef, { immediate: true, windowScr
const { y: chatHistoryContainerY } = useScroll(chatHistoryRef)
const { process } = useMarkdown()
const { nowSpeakingAvatarBorderOpacity } = storeToRefs(useSpeakingStore())
const { onBeforeMessageComposed, onTokenLiteral } = useChatStore()
onBeforeMessageComposed(async () => {
@@ -45,19 +42,6 @@ onTokenLiteral(async () => {
<div ref="chatHistoryRef" h-full w-full overflow-scroll>
<div v-for="(message, index) in messages" :key="index" mb-2>
<div v-if="message.role === 'assistant'" flex mr="12">
<div
class="block <sm:hidden"
mr-2 h-10
min-h-10 min-w-10 w-10
overflow-hidden rounded-full
border="solid 3"
transition="all ease-in-out" duration-100
:style="{
borderColor: `rgba(236, 72, 153, ${nowSpeakingAvatarBorderOpacity.toFixed(2)})`,
}"
>
<img :src="Avatar">
</div>
<div
flex="~ col"
bg="pink-50 dark:pink-900"
@@ -73,15 +57,6 @@ onTokenLiteral(async () => {
</div>
</div>
<div v-else-if="message.role === 'user'" flex="~ row-reverse" ml="12">
<div
class="block <sm:hidden"
border="purple solid 3"
ml="2"
h-10 min-h-10 min-w-10 w-10
overflow-hidden rounded-full
>
<div i-carbon:user-avatar-filled text="purple" h-full w-full p="0" m="0" />
</div>
<div
flex="~ col"
bg="purple-50 dark:purple-900"
+4
View File
@@ -1,4 +1,6 @@
import { autoAnimatePlugin } from '@formkit/auto-animate/vue'
import Tres from '@tresjs/core'
import { MotionPlugin } from '@vueuse/motion'
import NProgress from 'nprogress'
import { createPinia } from 'pinia'
import { setupLayouts } from 'virtual:generated-layouts'
@@ -32,6 +34,8 @@ router.isReady()
.catch(() => { })
createApp(App)
.use(MotionPlugin)
.use(autoAnimatePlugin)
.use(router)
.use(pinia)
.use(i18n)
+4 -4
View File
@@ -1,15 +1,15 @@
<script setup lang="ts">
import Header from '../components/Layouts/Header.vue'
import ChatHistory from '../components/Widgets/ChatHistory.vue'
import InteractiveArea from '../components/Layouts/InteractiveArea.vue'
import Stage from '../components/Widgets/Stage.vue'
</script>
<template>
<div h-full max-h="[100vh]" max-w="[100vw]" p="2" flex="~ col" overflow-hidden>
<Header />
<div flex="~ row 1" max-h="" relative h-full w-full items-end gap-2>
<Stage />
<ChatHistory />
<div flex="~ row 1" relative h-full w-full items-end gap-2>
<Stage w="50%" />
<InteractiveArea w="50%" />
</div>
</div>
</template>
+4
View File
@@ -51,6 +51,10 @@ export const useChatStore = defineStore('chat', () => {
t('prompt.prefix'),
t('prompt.suffix'),
),
{ role: 'assistant', content: 'ABCD' },
{ role: 'user', content: 'ABCD' },
{ role: 'assistant', content: 'ABCD' },
{ role: 'user', content: 'ABCD' },
])
const streamingMessage = ref<AssistantMessage>({ role: 'assistant', content: '' })
+266 -8
View File
@@ -258,6 +258,9 @@ importers:
'@iconify-json/lucide':
specifier: ^1.2.18
version: 1.2.18
'@iconify-json/mingcute':
specifier: ^1.2.2
version: 1.2.2
'@iconify-json/solar':
specifier: ^1.2.1
version: 1.2.1
@@ -288,6 +291,9 @@ importers:
'@vue-macros/volar':
specifier: ^0.30.7
version: 0.30.7(rollup@2.79.1)(typescript@5.7.2)(vue-tsc@2.1.10(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2))
'@vueuse/motion':
specifier: ^2.2.6
version: 2.2.6(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))
markdown-it-link-attributes:
specifier: ^4.0.1
version: 4.0.1
@@ -296,10 +302,10 @@ importers:
version: 0.14.1(@unocss/core@0.65.1)
unplugin-auto-import:
specifier: ^0.18.6
version: 0.18.6(@vueuse/core@12.0.0(typescript@5.7.2))(rollup@2.79.1)
version: 0.18.6(@nuxt/kit@3.14.1592(rollup@2.79.1))(@vueuse/core@12.0.0(typescript@5.7.2))(rollup@2.79.1)
unplugin-vue-components:
specifier: ^0.27.5
version: 0.27.5(@babel/parser@7.26.2)(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))
version: 0.27.5(@babel/parser@7.26.2)(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))
unplugin-vue-macros:
specifier: ^2.13.5
version: 2.13.5(@vueuse/core@12.0.0(typescript@5.7.2))(esbuild@0.24.0)(rollup@2.79.1)(typescript@5.7.2)(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue-tsc@2.1.10(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2))
@@ -317,7 +323,7 @@ importers:
version: 0.21.1(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(workbox-build@7.3.0)(workbox-window@7.3.0)
vite-plugin-vue-devtools:
specifier: ^7.6.7
version: 7.6.7(rollup@2.79.1)(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))
version: 7.6.7(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))
vite-plugin-vue-layouts:
specifier: ^0.11.0
version: 0.11.0(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue-router@4.5.0(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2))
@@ -1714,6 +1720,9 @@ packages:
'@iconify-json/lucide@1.2.18':
resolution: {integrity: sha512-SFBoHBSULntem84iWxGM9NzlP6QY/dwjxC5t4c1lC7+xq31Fous8JkppoJih0/ICJ3CsbppRZeb11y3iLcwwug==}
'@iconify-json/mingcute@1.2.2':
resolution: {integrity: sha512-nwfC1nX5fLI1OIM1E5IfV/vmjG3Hu9HM8nwucHTfCKUT8xDuBGbCsyN5FKRAVSMUiwsMJ+i3PtJ+3F+xEjJ+YA==}
'@iconify-json/solar@1.2.1':
resolution: {integrity: sha512-LA3WZ7HOi5O/sEc2M+BcQNJYNFDnUKP+ZldmNf8kwndnCuFMo+fukt6tSu4BqYRsRgp/Ku4xnys1JGBDi+QtCQ==}
@@ -1953,6 +1962,14 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
'@nuxt/kit@3.14.1592':
resolution: {integrity: sha512-r9r8bISBBisvfcNgNL3dSIQHSBe0v5YkX5zwNblIC2T0CIEgxEVoM5rq9O5wqgb5OEydsHTtT2hL57vdv6VT2w==}
engines: {node: ^14.18.0 || >=16.10.0}
'@nuxt/schema@3.14.1592':
resolution: {integrity: sha512-A1d/08ueX8stTXNkvGqnr1eEXZgvKn+vj6s7jXhZNWApUSqMgItU4VK28vrrdpKbjIPwq2SwhnGOHUYvN9HwCQ==}
engines: {node: ^14.18.0 || >=16.10.0}
'@oxc-resolver/binding-darwin-arm64@2.0.1':
resolution: {integrity: sha512-0l180Q0aBPRj23FlY7heLKo4znwXZGyTirxhtQewUeqLVnTzdyOuqGGKrnlL2rMXyE9cEXqQ4ZODdzdmWO6QsQ==}
cpu: [arm64]
@@ -2393,6 +2410,10 @@ packages:
'@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'}
'@sindresorhus/merge-streams@4.0.0':
resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
engines: {node: '>=18'}
@@ -3007,6 +3028,9 @@ packages:
'@vue/shared@3.5.13':
resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
'@vueuse/core@10.11.1':
resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==}
'@vueuse/core@11.3.0':
resolution: {integrity: sha512-7OC4Rl1f9G8IT6rUfi9JrKiXy4bfmHhZ5x2Ceojy0jnd3mHNEvV4JaRygH362ror6/NZ+Nl+n13LPzGiPN8cKA==}
@@ -3018,12 +3042,23 @@ packages:
peerDependencies:
vue: '>=2.7 || >=3'
'@vueuse/metadata@10.11.1':
resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==}
'@vueuse/metadata@11.3.0':
resolution: {integrity: sha512-pwDnDspTqtTo2HwfLw4Rp6yywuuBdYnPYDq+mO38ZYKGebCUQC/nVj/PXSiK9HX5otxLz8Fn7ECPbjiRz2CC3g==}
'@vueuse/metadata@12.0.0':
resolution: {integrity: sha512-Yzimd1D3sjxTDOlF05HekU5aSGdKjxhuhRFHA7gDWLn57PRbBIh+SF5NmjhJ0WRgF3my7T8LBucyxdFJjIfRJQ==}
'@vueuse/motion@2.2.6':
resolution: {integrity: sha512-gKFktPtrdypSv44SaW1oBJKLBiP6kE5NcoQ6RsAU3InemESdiAutgQncfPe/rhLSLCtL4jTAhMmFfxoR6gm5LQ==}
peerDependencies:
vue: '>=3.0.0'
'@vueuse/shared@10.11.1':
resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==}
'@vueuse/shared@11.3.0':
resolution: {integrity: sha512-P8gSSWQeucH5821ek2mn/ciCk+MS/zoRKqdQIM3bHq6p7GXDAJLmnRRKmF5F65sAVJIfzQlwR3aDzwCn10s8hA==}
@@ -3433,6 +3468,9 @@ packages:
commondir@1.0.1:
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
compatx@0.1.8:
resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==}
compressible@2.0.18:
resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
engines: {node: '>= 0.6'}
@@ -4213,6 +4251,9 @@ packages:
fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
framesync@6.1.2:
resolution: {integrity: sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==}
fresh@0.5.2:
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
engines: {node: '>= 0.6'}
@@ -4340,6 +4381,10 @@ packages:
resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
engines: {node: '>= 0.4'}
globby@14.0.2:
resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==}
engines: {node: '>=18'}
globby@6.1.0:
resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==}
engines: {node: '>=0.10.0'}
@@ -4402,6 +4447,9 @@ packages:
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
engines: {node: '>= 0.4.0'}
hash-sum@2.0.0:
resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==}
hasown@2.0.0:
resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
engines: {node: '>= 0.4'}
@@ -4416,6 +4464,9 @@ packages:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
hasBin: true
hey-listen@1.0.8:
resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==}
hono@4.6.13:
resolution: {integrity: sha512-haV0gaMdSjy9URCRN9hxBPlqHa7fMm/T72kAImIxvw4eQLbNz1rgjN4hHElLJSieDiNuiIAXC//cC6YGz2KCbg==}
engines: {node: '>=16.9.0'}
@@ -4492,6 +4543,10 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
ignore@6.0.2:
resolution: {integrity: sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==}
engines: {node: '>= 4'}
import-fresh@3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'}
@@ -4814,6 +4869,13 @@ packages:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: '>=6'}
klona@2.0.6:
resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==}
engines: {node: '>= 8'}
knitwork@1.2.0:
resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==}
kolorist@1.8.0:
resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
@@ -4911,6 +4973,9 @@ packages:
magic-string@0.30.14:
resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==}
magic-string@0.30.17:
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
make-dir@3.1.0:
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
engines: {node: '>=8'}
@@ -5453,6 +5518,10 @@ packages:
path-to-regexp@6.3.0:
resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
path-type@5.0.0:
resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==}
engines: {node: '>=12'}
pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
@@ -5532,6 +5601,9 @@ packages:
engines: {node: '>=18.12'}
hasBin: true
popmotion@11.0.5:
resolution: {integrity: sha512-la8gPM1WYeFznb/JqF4GiTkRRPZsfaj2+kCxqQgr2MJylMmIKUwBfWW8Wa5fml/8gmtlD5yI01MP1QCZPWmppA==}
postcss-calc@10.0.2:
resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==}
engines: {node: ^18.12 || ^20.9 || >=22.0}
@@ -6108,6 +6180,10 @@ packages:
sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
slash@5.1.0:
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
engines: {node: '>=14.16'}
slashes@3.0.12:
resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==}
@@ -6294,6 +6370,9 @@ packages:
resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==}
engines: {node: '>=0.10.0'}
style-value-types@5.1.2:
resolution: {integrity: sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q==}
stylehacks@7.0.4:
resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
@@ -6465,6 +6544,9 @@ packages:
ts-macro@0.1.10:
resolution: {integrity: sha512-jK3yom5TWGtZ8Lbq8YEPrhWK51gn//71W6mY8KApHAzWKQeWMUHG3TO6YpduJeippjsUsHjm/zUCC4Ps+pAZ2Q==}
tslib@2.4.0:
resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==}
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
@@ -6546,6 +6628,12 @@ packages:
unconfig@0.6.0:
resolution: {integrity: sha512-4C67J0nIF2QwSXty2kW3zZx1pMZ3iXabylvJWWgHybWVUcMf9pxwsngoQt0gC+AVstRywFqrRBp3qOXJayhpOw==}
uncrypto@0.1.3:
resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
unctx@2.4.0:
resolution: {integrity: sha512-VSwGlVn3teRLkFS9OH4JoZ25ky133vVPQkS6qHv/itYVrqHBa+7SO46Yh07Zve1WEi9A1X135g9DR6KMv6ZsJg==}
undici-types@6.20.0:
resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
@@ -6575,6 +6663,10 @@ packages:
resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
engines: {node: '>=4'}
unicorn-magic@0.1.0:
resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
engines: {node: '>=18'}
unicorn-magic@0.3.0:
resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
engines: {node: '>=18'}
@@ -8450,6 +8542,10 @@ snapshots:
dependencies:
'@iconify/types': 2.0.0
'@iconify-json/mingcute@1.2.2':
dependencies:
'@iconify/types': 2.0.0
'@iconify-json/solar@1.2.1':
dependencies:
'@iconify/types': 2.0.0
@@ -8693,6 +8789,55 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.15.0
'@nuxt/kit@3.14.1592(rollup@2.79.1)':
dependencies:
'@nuxt/schema': 3.14.1592(rollup@2.79.1)
c12: 2.0.1
consola: 3.2.3
defu: 6.1.4
destr: 2.0.3
globby: 14.0.2
hash-sum: 2.0.0
ignore: 6.0.2
jiti: 2.4.0
klona: 2.0.6
knitwork: 1.2.0
mlly: 1.7.3
pathe: 1.1.2
pkg-types: 1.2.1
scule: 1.3.0
semver: 7.6.3
ufo: 1.5.4
unctx: 2.4.0
unimport: 3.14.2(rollup@2.79.1)
untyped: 1.5.1
transitivePeerDependencies:
- magicast
- rollup
- supports-color
optional: true
'@nuxt/schema@3.14.1592(rollup@2.79.1)':
dependencies:
c12: 2.0.1
compatx: 0.1.8
consola: 3.2.3
defu: 6.1.4
hookable: 5.5.3
pathe: 1.1.2
pkg-types: 1.2.1
scule: 1.3.0
std-env: 3.8.0
ufo: 1.5.4
uncrypto: 0.1.3
unimport: 3.14.2(rollup@2.79.1)
untyped: 1.5.1
transitivePeerDependencies:
- magicast
- rollup
- supports-color
optional: true
'@oxc-resolver/binding-darwin-arm64@2.0.1':
optional: true
@@ -9086,6 +9231,9 @@ snapshots:
'@shikijs/vscode-textmate@9.3.0': {}
'@sindresorhus/merge-streams@2.3.0':
optional: true
'@sindresorhus/merge-streams@4.0.0': {}
'@stylistic/eslint-plugin@2.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.7.2)':
@@ -10025,6 +10173,16 @@ snapshots:
'@vue/shared@3.5.13': {}
'@vueuse/core@10.11.1(vue@3.5.13(typescript@5.7.2))':
dependencies:
'@types/web-bluetooth': 0.0.20
'@vueuse/metadata': 10.11.1
'@vueuse/shared': 10.11.1(vue@3.5.13(typescript@5.7.2))
vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.2))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@vueuse/core@11.3.0(vue@3.5.13(typescript@5.7.2))':
dependencies:
'@types/web-bluetooth': 0.0.20
@@ -10052,10 +10210,36 @@ snapshots:
'@unhead/vue': 1.11.14(vue@3.5.13(typescript@5.7.2))
vue: 3.5.13(typescript@5.7.2)
'@vueuse/metadata@10.11.1': {}
'@vueuse/metadata@11.3.0': {}
'@vueuse/metadata@12.0.0': {}
'@vueuse/motion@2.2.6(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))':
dependencies:
'@vueuse/core': 10.11.1(vue@3.5.13(typescript@5.7.2))
'@vueuse/shared': 10.11.1(vue@3.5.13(typescript@5.7.2))
csstype: 3.1.3
framesync: 6.1.2
popmotion: 11.0.5
style-value-types: 5.1.2
vue: 3.5.13(typescript@5.7.2)
optionalDependencies:
'@nuxt/kit': 3.14.1592(rollup@2.79.1)
transitivePeerDependencies:
- '@vue/composition-api'
- magicast
- rollup
- supports-color
'@vueuse/shared@10.11.1(vue@3.5.13(typescript@5.7.2))':
dependencies:
vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.2))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@vueuse/shared@11.3.0(vue@3.5.13(typescript@5.7.2))':
dependencies:
vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.2))
@@ -10506,6 +10690,9 @@ snapshots:
commondir@1.0.1: {}
compatx@0.1.8:
optional: true
compressible@2.0.18:
dependencies:
mime-db: 1.52.0
@@ -11535,6 +11722,10 @@ snapshots:
fraction.js@4.3.7: {}
framesync@6.1.2:
dependencies:
tslib: 2.4.0
fresh@0.5.2: {}
fs-extra@11.2.0:
@@ -11678,6 +11869,16 @@ snapshots:
dependencies:
define-properties: 1.2.0
globby@14.0.2:
dependencies:
'@sindresorhus/merge-streams': 2.3.0
fast-glob: 3.3.2
ignore: 5.3.2
path-type: 5.0.0
slash: 5.1.0
unicorn-magic: 0.1.0
optional: true
globby@6.1.0:
dependencies:
array-union: 1.0.2
@@ -11737,6 +11938,9 @@ snapshots:
dependencies:
function-bind: 1.1.2
hash-sum@2.0.0:
optional: true
hasown@2.0.0:
dependencies:
function-bind: 1.1.2
@@ -11761,6 +11965,8 @@ snapshots:
he@1.2.0: {}
hey-listen@1.0.8: {}
hono@4.6.13: {}
hookable@5.5.3: {}
@@ -11843,6 +12049,9 @@ snapshots:
ignore@5.3.2: {}
ignore@6.0.2:
optional: true
import-fresh@3.3.0:
dependencies:
parent-module: 1.0.1
@@ -12151,6 +12360,12 @@ snapshots:
kleur@3.0.3: {}
klona@2.0.6:
optional: true
knitwork@1.2.0:
optional: true
kolorist@1.8.0: {}
leven@3.1.0: {}
@@ -12256,6 +12471,11 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
magic-string@0.30.17:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
optional: true
make-dir@3.1.0:
dependencies:
semver: 6.3.1
@@ -12965,6 +13185,9 @@ snapshots:
path-to-regexp@6.3.0: {}
path-type@5.0.0:
optional: true
pathe@1.1.2: {}
pathval@2.0.0: {}
@@ -13025,6 +13248,13 @@ snapshots:
pnpm@9.15.0: {}
popmotion@11.0.5:
dependencies:
framesync: 6.1.2
hey-listen: 1.0.8
style-value-types: 5.1.2
tslib: 2.4.0
postcss-calc@10.0.2(postcss@8.4.49):
dependencies:
postcss: 8.4.49
@@ -13692,6 +13922,9 @@ snapshots:
sisteransi@1.0.5: {}
slash@5.1.0:
optional: true
slashes@3.0.12: {}
slice-ansi@5.0.0:
@@ -13893,6 +14126,11 @@ snapshots:
dependencies:
escape-string-regexp: 1.0.5
style-value-types@5.1.2:
dependencies:
hey-listen: 1.0.8
tslib: 2.4.0
stylehacks@7.0.4(postcss@8.4.49):
dependencies:
browserslist: 4.24.2
@@ -14083,6 +14321,8 @@ snapshots:
- rollup
- typescript
tslib@2.4.0: {}
tslib@2.8.1: {}
tsx@4.19.2:
@@ -14200,6 +14440,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
uncrypto@0.1.3:
optional: true
unctx@2.4.0:
dependencies:
acorn: 8.14.0
estree-walker: 3.0.3
magic-string: 0.30.17
unplugin: 2.0.0
optional: true
undici-types@6.20.0: {}
undici@5.28.4:
@@ -14231,6 +14482,9 @@ snapshots:
unicode-property-aliases-ecmascript@2.1.0: {}
unicorn-magic@0.1.0:
optional: true
unicorn-magic@0.3.0: {}
unified@11.0.5:
@@ -14327,7 +14581,7 @@ snapshots:
unpipe@1.0.0: {}
unplugin-auto-import@0.18.6(@vueuse/core@12.0.0(typescript@5.7.2))(rollup@2.79.1):
unplugin-auto-import@0.18.6(@nuxt/kit@3.14.1592(rollup@2.79.1))(@vueuse/core@12.0.0(typescript@5.7.2))(rollup@2.79.1):
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.3(rollup@2.79.1)
@@ -14338,6 +14592,7 @@ snapshots:
unimport: 3.14.2(rollup@2.79.1)
unplugin: 1.16.0
optionalDependencies:
'@nuxt/kit': 3.14.1592(rollup@2.79.1)
'@vueuse/core': 12.0.0(typescript@5.7.2)
transitivePeerDependencies:
- rollup
@@ -14351,7 +14606,7 @@ snapshots:
rollup: 2.79.1
vite: 6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)
unplugin-vue-components@0.27.5(@babel/parser@7.26.2)(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)):
unplugin-vue-components@0.27.5(@babel/parser@7.26.2)(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)):
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.3(rollup@2.79.1)
@@ -14366,6 +14621,7 @@ snapshots:
vue: 3.5.13(typescript@5.7.2)
optionalDependencies:
'@babel/parser': 7.26.2
'@nuxt/kit': 3.14.1592(rollup@2.79.1)
transitivePeerDependencies:
- rollup
- supports-color
@@ -14577,7 +14833,7 @@ snapshots:
- rollup
- supports-color
vite-plugin-inspect@0.8.8(rollup@2.79.1)(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)):
vite-plugin-inspect@0.8.8(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)):
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.3(rollup@2.79.1)
@@ -14589,6 +14845,8 @@ snapshots:
picocolors: 1.1.1
sirv: 3.0.0
vite: 6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)
optionalDependencies:
'@nuxt/kit': 3.14.1592(rollup@2.79.1)
transitivePeerDependencies:
- rollup
- supports-color
@@ -14604,7 +14862,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
vite-plugin-vue-devtools@7.6.7(rollup@2.79.1)(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)):
vite-plugin-vue-devtools@7.6.7(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)):
dependencies:
'@vue/devtools-core': 7.6.7(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))
'@vue/devtools-kit': 7.6.7
@@ -14612,7 +14870,7 @@ snapshots:
execa: 9.5.1
sirv: 3.0.0
vite: 6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)
vite-plugin-inspect: 0.8.8(rollup@2.79.1)(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))
vite-plugin-inspect: 0.8.8(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))
vite-plugin-vue-inspector: 5.3.1(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))
transitivePeerDependencies:
- '@nuxt/kit'