docs: added DevLog @ 2025.03.20

This commit is contained in:
Neko Ayaka
2025-03-21 23:29:35 +08:00
parent ab8dc0ad37
commit 9ced2d67a1
25 changed files with 361 additions and 35 deletions
+1
View File
@@ -36,6 +36,7 @@ export default defineConfig({
],
customCss: [
'./src/styles/custom.css',
'@fontsource/quicksand/300.css',
],
}),
],
+1
View File
@@ -12,6 +12,7 @@
},
"dependencies": {
"@astrojs/starlight": "^0.32.3",
"@fontsource/quicksand": "^5.2.6",
"astro": "^5.5.3",
"sharp": "^0.33.5",
"starlight-theme-catppuccin": "^2.0.0"
Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1019 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

@@ -79,7 +79,7 @@ At the end of March 8th, [@LemonNekoGH](https://github.com/LemonNekoGH) and
colors for the entire stage! (I never thought this could be done within hours...)
<video controls muted>
<source src="../../../assets/images/blog/DevLog-2025.03.10/customizable-theme-colors.mp4">
<source src="/static/blog/DevLog-2025.03.10/customizable-theme-colors.mp4">
</video>
- https://github.com/moeru-ai/airi/pull/53
@@ -0,0 +1,191 @@
---
title: DevLog @ 2025.03.20
---
import { Image } from 'astro:assets';
import Gelbana from '../../../assets/images/blog/DevLog-2025.03.20/steins-gate-gelnana-from-elpsycongrooblog.webp'
import NewUIV3 from '../../../assets/images/blog/DevLog-2025.03.10/new-ui-v3.png'
import NewUIV3Dark from '../../../assets/images/blog/DevLog-2025.03.10/new-ui-v3-dark.png'
import HistoireColorSlider from '../../../assets/images/blog/DevLog-2025.03.20/histoire-color-slider.png'
import HistoireColorSliderDark from '../../../assets/images/blog/DevLog-2025.03.20/histoire-color-slider-dark.png'
import HistoireLogo from '../../../assets/images/blog/DevLog-2025.03.20/histoire-logo.png'
import HistoireLogoDark from '../../../assets/images/blog/DevLog-2025.03.20/histoire-logo-dark.png'
import NewUIV4Speech from '../../../assets/images/blog/DevLog-2025.03.20/new-ui-v4-speech.png'
import NewUIV4SpeechDark from '../../../assets/images/blog/DevLog-2025.03.20/new-ui-v4-speech-dark.png'
import SteinsGateMayori from '../../../assets/images/blog/DevLog-2025.03.20/steins-gate-mayori.webp'
Hello again! It has been 10 days since the [last post of DevLog](../references/contributing/guide/).
We made a lot of improvements to our user interface, we made it possible
to integrate more LLM providers, and speech providers, first time to post
Airi on Discord, bilibili, and many other social media platforms.
There is so much more that we can't wait to tell you about.
## Dejavu
Let's rewind the time a little bit!
<Image src={Gelbana} alt="Gelbana" />
> Ahh, don't worry, our beloved [Airi](https://github.com/moeru-ai/airi) will
> not turn into GEL-NANA like this. BUT, if you haven't watched the
> [_Steins;Gate_](https://myanimelist.net/anime/9253/Steins_Gate) anime series,
> try it~!
We were working on the initial settings UI design, and animation has been
improved, customizable theme coloring has been achieved for 10 days ago.
It was indeed a busy week for any of us (especially we are all part-time on
this project, haha, join us if you will. 🥺 (PLEASED FACE)).
And this was the final result we got at that time:
<Image className="light" src={NewUIV3} alt="new ui" />
<Image className="dark" src={NewUIV3Dark} alt="new ui" />
<h2 class="devlog-steins-gate-divergence-meter-heading">
<span class="nixie-digit">0</span>
<span class="nixie-digit">.</span>
<span class="nixie-digit">5</span>
<span class="nixie-digit">7</span>
<span class="nixie-digit">1</span>
<span class="nixie-digit">0</span>
<span class="nixie-digit">2</span>
<span class="nixie-digit">4</span>
</h2>
~~Welcome to the β sekaisen.~~
Since we have the colored card for model radio group, and navigation items,
with the customizable themes, it's obvious that we will definitely suffer
in debugging the UI components within the business workflows, clearly it
will slow us down.
This is where we made the decision to introduce the amazing tool called
[`Histoire`](https://histoire.dev), basically a
[Storybook](https://storybook.js.org/) but much more native to
[Vite](https://vitejs.dev) and [Vue.js](https://vuejs.org) combination.
Here's the first look that [@sumimakito](https://github.com/sumimakito)
recorded once done:
<video muted autoplay>
<source src="/static/blog/DevLog-2025.03.20/histoire-first-look.mp4" />
</video>
The entire OKLCH color palette can spread on to the canvas all at once
for us to take as reference. But it wasn't perfect to tryout the colors
and have the same scheme of feelings of Project Airi's theme, was it?
So I first re-implemented the color slider, which feels much more suitable:
<Image className="light" src={HistoireColorSlider} alt="color slider" />
<Image className="dark" src={HistoireColorSliderDark} alt="color slider" />
This does make the slider a bit more professional.
The logo and the default greenish color can be replaced to align the theme
of Airi, that's why I designed another dedicated logo for the UI page:
<Image className="light" src={HistoireLogo} alt="project airi logo for histoire" />
<Image className="dark" src={HistoireLogoDark} alt="project airi logo for histoire" />
Oh, right, the entire UI component has been deployed to Netlify as usual
under the path `/ui/`, feel free to take a look at it if you ever wondered
how does the UI elements look like:
[https://airi.moeru.ai/ui/](https://airi.moeru.ai/ui/)
There are tons of other features that we cannot cover in this DevLog entirely:
- [x] Supported for all of the LLM providers.
- [x] Improved the animation and transition of menu navigation UI.
- [x] Improved the spacing of the fields, new form!
- [x] Component for (almost all the todo components on the [Roadmap](https://github.com/moeru-ai/airi/issues/42))
- [x] Form
- [x] Radio
- [x] Radio Group
- [x] Model Catalog
- [x] Range
- [x] Input
- [x] Key Value Input
- [x] Data Gui
- [x] Range
- [x] Menu
- [x] Menu Item
- [x] Menu Status Item
- [x] Graphics
- [x] 3D
- [x] Physics
- [x] Cursor Momentum
- [x] And more...
We did some other experiment over the momentum and 3D too.
Check this out:
<Image className="light" src={NewUIV4Speech} alt="brand new speech design" />
<Image className="dark" src={NewUIV4SpeechDark} alt="brand new speech design" />
We finally supported speech models configurations 🎉! (Previously was
only capable to configure for ElevenLabs) Since the
[new `v0.1.2` version](https://github.com/moeru-ai/unspeech/releases/tag/v0.1.2)
of another amazing project we were working on called `unspeech`, it's possible
to request the Microsoft Speech service (a.k.a. Azure AI Speech service, or
Cognitive Speech service) through
[`@xsai/generate-speech`](https://xsai.js.org/docs/packages/generate/speech), which
means we finally got a OpenAI API compatible TTS for Microsoft.
But why was this so important to support?
It's because that for the very first version of Neuro-sama, the text-to-speech
service was powered by Microsoft, with the voice named `Ashley`, along with a
`+20%` of pitch, you can get the same voice as Neuro-sama's first version, try it
yourself:
<audio>
<source src="/static/blog/DevLog-2025.03.20/ashley-pitch-test.mp3" />
</audio>
Isn't it the same, this is insane! That's means, we can finally approach to
what Neuro-sama can do with the new **Speech** ability!
<Image src={SteinsGateMayori} alt="character from anime Steins;Gate" />
<h2 class="devlog-steins-gate-divergence-meter-heading">
<span class="nixie-digit">1</span>
<span class="nixie-digit">.</span>
<span class="nixie-digit">3</span>
<span class="nixie-digit">8</span>
<span class="nixie-digit">2</span>
<span class="nixie-digit">7</span>
<span class="nixie-digit">3</span>
<span class="nixie-digit">3</span>
</h2>
With all of those, we can get this result:
<video control muted autoplay>
<source src="/static/blog/DevLog-2025.03.20/airi-demo.mp4" />
</video>
Nearly the same. But our story doesn't end here, currently, we haven't
achieved memory, and better motion control, and the transcription settings
UI was missing too. Hopefully we can get this done before the end of the
month.
We are planning to have
- [ ] Memory Postgres + Vector
- [ ] Embedding settings UI
- [ ] Transcription settings UI
- [ ] Memory DuckDB WASM + Vector
- [ ] Motion embedding
- [ ] Speaches settings UI
That's all for today's DevLog, thank you to everyone that read the DevLog
all the way down here.
I'll see you all tomorrow.
> El Psy Congroo.
@@ -0,0 +1,7 @@
---
title: About AI VTuber
---
LLM Generated documentation, but contains some useful resources about Japanese TTS modules and services:
[【AI VTuber作り方ガイド】初心者でも簡単に自動生成する方法 – AI Front Trend](https://ai-front-trend.jp/how-to-make-ai-vtuber/)
-20
View File
@@ -16,23 +16,3 @@ hero:
icon: right-arrow
variant: minimal
---
{/*
import { Card, CardGrid } from '@astrojs/starlight/components';
## Next steps
<CardGrid stagger>
<Card title="Update content" icon="pencil">
Edit `src/content/docs/index.mdx` to see this page change.
</Card>
<Card title="Add new content" icon="add-document">
Add Markdown or MDX files to `src/content/docs` to create new pages.
</Card>
<Card title="Configure your site" icon="setting">
Edit your `sidebar` and other config in `astro.config.mjs`.
</Card>
<Card title="Read the docs" icon="open-book">
Learn more in [the Starlight Docs](https://starlight.astro.build/).
</Card>
</CardGrid> */}
+14
View File
@@ -1,3 +1,5 @@
@import './nixie.css';
/* Dark mode colors. */
:root {
--sl-color-accent-low: #3f121d;
@@ -32,3 +34,15 @@
width: 100%;
height: auto;
}
[data-theme='dark'] .light {
display: none;
}
[data-theme='light'] .dark {
display: none;
}
video {
border-radius: 8px;
}
+124
View File
@@ -0,0 +1,124 @@
.devlog-steins-gate-divergence-meter-heading {
font-family: 'Quicksand', sans;
font-size: 2.5rem;
color: rgb(255 159 32) !important;
text-shadow:
0 0 5px rgb(241 153 87),
0 0 10px rgb(255 110 0);
animation: flicker 2s infinite;
display: flex;
gap: 3px;
}
.nixie-digit {
position: relative;
display: inline-block;
width: 24px;
display: inline-flex;
justify-content: center;
background: #170d04;
border-top-left-radius: 8px;
border-top-right-radius: 8px;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
box-shadow: inset 0px 0px 2px 0px #fff;
}
.nixie-digit::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-size: 3px 3px;
background-image: repeating-linear-gradient(
90deg,
transparent,
transparent 2px,
#ff9f001a 2px,
rgb(221 214 213 / 0%) 3px
),
repeating-linear-gradient(0deg, transparent, transparent 2px, #ff9f001a 2px, rgb(196 184 182 / 0%) 3px);
pointer-events: none;
z-index: 4;
border-top-left-radius: 8px;
border-top-right-radius: 8px;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
/* Subtle glass reflection effect */
.nixie-digit::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-size: 3px 3px;
background-image: repeating-linear-gradient(
90deg,
transparent,
transparent 2px,
#ff9f001a 2px,
rgb(221 214 213 / 0%) 3px
),
repeating-linear-gradient(0deg, transparent, transparent 2px, #ff9f001a 2px, rgb(196 184 182 / 0%) 3px);
pointer-events: none;
z-index: 2;
border-top-left-radius: 8px;
border-top-right-radius: 8px;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
[data-theme='dark'] .devlog-steins-gate-divergence-meter-heading {
color: rgb(255, 157, 77) !important;
text-shadow:
0 0 7px #ff6a00,
0 0 10px #ff6a00;
}
[data-theme='dark'] .nixie-digit {
background: transparent;
box-shadow: none;
}
[data-theme='dark'] .nixie-digit::before {
background-image: repeating-linear-gradient(
90deg,
transparent,
transparent 2px,
rgba(30, 30, 30, 0.1) 2px,
rgba(30, 30, 30, 0.1) 3px
),
repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(30, 30, 30, 0.1) 2px, rgba(30, 30, 30, 0.1) 3px);
}
[data-theme='dark'] .nixie-digit::after {
height: 35%;
background: linear-gradient(to bottom, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0));
border: none;
}
@keyframes flicker {
0% {
opacity: 1;
}
92% {
opacity: 1;
}
93% {
opacity: 0.8;
}
94% {
opacity: 1;
}
98% {
opacity: 0.9;
}
100% {
opacity: 1;
}
}
+22 -14
View File
@@ -418,7 +418,7 @@ importers:
version: 2.3.0
'@intlify/unplugin-vue-i18n':
specifier: ^6.0.5
version: 6.0.5(@vue/compiler-dom@3.5.13)(eslint@9.22.0(jiti@2.4.2))(rollup@4.36.0)(typescript@5.8.2)(vue-i18n@11.1.2(vue@3.5.13(typescript@5.8.2)))(vue@3.5.13(typescript@5.8.2))
version: 6.0.5(@vue/compiler-dom@3.5.13)(eslint@9.22.0(jiti@2.4.2))(rollup@2.79.1)(typescript@5.8.2)(vue-i18n@11.1.2(vue@3.5.13(typescript@5.8.2)))(vue@3.5.13(typescript@5.8.2))
'@proj-airi/drizzle-duckdb-wasm':
specifier: workspace:^
version: link:../../packages/drizzle-duckdb-wasm
@@ -469,7 +469,7 @@ importers:
version: 3.0.0-beta.5(typescript@5.8.2)(vue-tsc@3.0.0-alpha.2(typescript@5.8.2))(vue@3.5.13(typescript@5.8.2))
'@vueuse/motion':
specifier: ^3.0.3
version: 3.0.3(magicast@0.3.5)(rollup@4.36.0)(vue@3.5.13(typescript@5.8.2))
version: 3.0.3(magicast@0.3.5)(rollup@2.79.1)(vue@3.5.13(typescript@5.8.2))
electron:
specifier: ^34.3.3
version: 34.3.3
@@ -490,13 +490,13 @@ importers:
version: 3.2.0(unocss@66.1.0-beta.6(postcss@8.5.3)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2)))
unplugin-auto-import:
specifier: ^19.1.1
version: 19.1.1(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.36.0))(@vueuse/core@13.0.0(vue@3.5.13(typescript@5.8.2)))
version: 19.1.1(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(@vueuse/core@13.0.0(vue@3.5.13(typescript@5.8.2)))
unplugin-vue-components:
specifier: ^28.4.1
version: 28.4.1(@babel/parser@7.26.10)(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.36.0))(vue@3.5.13(typescript@5.8.2))
version: 28.4.1(@babel/parser@7.26.10)(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(vue@3.5.13(typescript@5.8.2))
unplugin-vue-macros:
specifier: ^2.14.5
version: 2.14.5(@vueuse/core@13.0.0(vue@3.5.13(typescript@5.8.2)))(esbuild@0.25.0)(rollup@4.36.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-tsc@3.0.0-alpha.2(typescript@5.8.2))(vue@3.5.13(typescript@5.8.2))
version: 2.14.5(@vueuse/core@13.0.0(vue@3.5.13(typescript@5.8.2)))(esbuild@0.19.12)(rollup@2.79.1)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-tsc@3.0.0-alpha.2(typescript@5.8.2))(vue@3.5.13(typescript@5.8.2))
unplugin-vue-markdown:
specifier: ^28.3.1
version: 28.3.1(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))
@@ -505,13 +505,13 @@ importers:
version: 0.12.0(vue-router@4.5.0(vue@3.5.13(typescript@5.8.2)))(vue@3.5.13(typescript@5.8.2))
vite-bundle-visualizer:
specifier: ^1.2.1
version: 1.2.1(rollup@4.36.0)
version: 1.2.1(rollup@2.79.1)
vite-plugin-pwa:
specifier: ^0.21.1
version: 0.21.1(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
vite-plugin-vue-devtools:
specifier: ^7.7.2
version: 7.7.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.36.0))(rollup@4.36.0)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2))
version: 7.7.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(rollup@2.79.1)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2))
vite-plugin-vue-layouts:
specifier: ^0.11.0
version: 0.11.0(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-router@4.5.0(vue@3.5.13(typescript@5.8.2)))(vue@3.5.13(typescript@5.8.2))
@@ -770,7 +770,7 @@ importers:
version: 2.3.0
'@intlify/unplugin-vue-i18n':
specifier: ^6.0.5
version: 6.0.5(@vue/compiler-dom@3.5.13)(eslint@9.22.0(jiti@2.4.2))(rollup@2.79.1)(typescript@5.8.2)(vue-i18n@11.1.2(vue@3.5.13(typescript@5.8.2)))(vue@3.5.13(typescript@5.8.2))
version: 6.0.5(@vue/compiler-dom@3.5.13)(eslint@9.22.0(jiti@2.4.2))(rollup@4.36.0)(typescript@5.8.2)(vue-i18n@11.1.2(vue@3.5.13(typescript@5.8.2)))(vue@3.5.13(typescript@5.8.2))
'@proj-airi/lobe-icons':
specifier: ^1.0.4
version: 1.0.4
@@ -809,7 +809,7 @@ importers:
version: 3.0.0-beta.5(typescript@5.8.2)(vue-tsc@3.0.0-alpha.2(typescript@5.8.2))(vue@3.5.13(typescript@5.8.2))
'@vueuse/motion':
specifier: ^3.0.3
version: 3.0.3(magicast@0.3.5)(rollup@2.79.1)(vue@3.5.13(typescript@5.8.2))
version: 3.0.3(magicast@0.3.5)(rollup@4.36.0)(vue@3.5.13(typescript@5.8.2))
hfup:
specifier: workspace:^
version: link:../../packages/hfup
@@ -821,13 +821,13 @@ importers:
version: 4.0.1
unplugin-auto-import:
specifier: ^19.1.1
version: 19.1.1(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(@vueuse/core@13.0.0(vue@3.5.13(typescript@5.8.2)))
version: 19.1.1(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.36.0))(@vueuse/core@13.0.0(vue@3.5.13(typescript@5.8.2)))
unplugin-vue-components:
specifier: ^28.4.1
version: 28.4.1(@babel/parser@7.26.10)(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(vue@3.5.13(typescript@5.8.2))
version: 28.4.1(@babel/parser@7.26.10)(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.36.0))(vue@3.5.13(typescript@5.8.2))
unplugin-vue-macros:
specifier: ^2.14.5
version: 2.14.5(@vueuse/core@13.0.0(vue@3.5.13(typescript@5.8.2)))(esbuild@0.19.12)(rollup@2.79.1)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-tsc@3.0.0-alpha.2(typescript@5.8.2))(vue@3.5.13(typescript@5.8.2))
version: 2.14.5(@vueuse/core@13.0.0(vue@3.5.13(typescript@5.8.2)))(esbuild@0.25.0)(rollup@4.36.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-tsc@3.0.0-alpha.2(typescript@5.8.2))(vue@3.5.13(typescript@5.8.2))
unplugin-vue-markdown:
specifier: ^28.3.1
version: 28.3.1(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))
@@ -836,13 +836,13 @@ importers:
version: 0.12.0(vue-router@4.5.0(vue@3.5.13(typescript@5.8.2)))(vue@3.5.13(typescript@5.8.2))
vite-bundle-visualizer:
specifier: ^1.2.1
version: 1.2.1(rollup@2.79.1)
version: 1.2.1(rollup@4.36.0)
vite-plugin-pwa:
specifier: ^0.21.1
version: 0.21.1(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
vite-plugin-vue-devtools:
specifier: ^7.7.2
version: 7.7.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(rollup@2.79.1)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2))
version: 7.7.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.36.0))(rollup@4.36.0)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.2))
vite-plugin-vue-layouts:
specifier: ^0.11.0
version: 0.11.0(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-router@4.5.0(vue@3.5.13(typescript@5.8.2)))(vue@3.5.13(typescript@5.8.2))
@@ -855,6 +855,9 @@ importers:
'@astrojs/starlight':
specifier: ^0.32.3
version: 0.32.3(astro@5.5.3(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(rollup@4.36.0)(terser@5.17.6)(tsx@4.19.3)(typescript@5.8.2)(yaml@2.7.0))
'@fontsource/quicksand':
specifier: ^5.2.6
version: 5.2.6
astro:
specifier: ^5.5.3
version: 5.5.3(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(rollup@4.36.0)(terser@5.17.6)(tsx@4.19.3)(typescript@5.8.2)(yaml@2.7.0)
@@ -3120,6 +3123,9 @@ packages:
'@floating-ui/vue@1.1.6':
resolution: {integrity: sha512-XFlUzGHGv12zbgHNk5FN2mUB7ROul3oG2ENdTpWdE+qMFxyNxWSRmsoyhiEnpmabNm6WnUvR1OvJfUfN4ojC1A==}
'@fontsource/quicksand@5.2.6':
resolution: {integrity: sha512-MI1EO6ENXbmAxzwkxhLdCUKLLP6SGQ7IHLktuwOcS7llvK4Ni6QiqFCHZg40wpOfR0Z0FMCOJAqykf3QSqYpFA==}
'@formkit/auto-animate@0.8.2':
resolution: {integrity: sha512-SwPWfeRa5veb1hOIBMdzI+73te5puUBHmqqaF1Bu7FjvxlYSz/kJcZKSa9Cg60zL0uRNeJL2SbRxV6Jp6Q1nFQ==}
@@ -13752,6 +13758,8 @@ snapshots:
- '@vue/composition-api'
- vue
'@fontsource/quicksand@5.2.6': {}
'@formkit/auto-animate@0.8.2': {}
'@grammyjs/files@1.1.1(grammy@1.35.0(encoding@0.1.13))':