diff --git a/docs/astro.config.ts b/docs/astro.config.ts index 7840e4823..29fdb8671 100644 --- a/docs/astro.config.ts +++ b/docs/astro.config.ts @@ -36,6 +36,7 @@ export default defineConfig({ ], customCss: [ './src/styles/custom.css', + '@fontsource/quicksand/300.css', ], }), ], diff --git a/docs/package.json b/docs/package.json index b35dc34b6..cf9429fbe 100644 --- a/docs/package.json +++ b/docs/package.json @@ -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" diff --git a/docs/public/static/blog/DevLog-2025.03.10/customizable-theme-colors.mp4 b/docs/public/static/blog/DevLog-2025.03.10/customizable-theme-colors.mp4 new file mode 100644 index 000000000..b55926a1f Binary files /dev/null and b/docs/public/static/blog/DevLog-2025.03.10/customizable-theme-colors.mp4 differ diff --git a/docs/public/static/blog/DevLog-2025.03.20/airi-demo.mp4 b/docs/public/static/blog/DevLog-2025.03.20/airi-demo.mp4 new file mode 100644 index 000000000..2ee3152e7 Binary files /dev/null and b/docs/public/static/blog/DevLog-2025.03.20/airi-demo.mp4 differ diff --git a/docs/public/static/blog/DevLog-2025.03.20/ashley-pitch-test.mp3 b/docs/public/static/blog/DevLog-2025.03.20/ashley-pitch-test.mp3 new file mode 100644 index 000000000..2ce65927e Binary files /dev/null and b/docs/public/static/blog/DevLog-2025.03.20/ashley-pitch-test.mp3 differ diff --git a/docs/public/static/blog/DevLog-2025.03.20/histoire-first-look.mp4 b/docs/public/static/blog/DevLog-2025.03.20/histoire-first-look.mp4 new file mode 100644 index 000000000..eebeef63b Binary files /dev/null and b/docs/public/static/blog/DevLog-2025.03.20/histoire-first-look.mp4 differ diff --git a/docs/src/assets/images/blog/DevLog-2025.03.20/elevenlabs-api-key.jpeg b/docs/src/assets/images/blog/DevLog-2025.03.20/elevenlabs-api-key.jpeg new file mode 100644 index 000000000..1f7aa5698 Binary files /dev/null and b/docs/src/assets/images/blog/DevLog-2025.03.20/elevenlabs-api-key.jpeg differ diff --git a/docs/src/assets/images/blog/DevLog-2025.03.20/elevenlabs.jpeg b/docs/src/assets/images/blog/DevLog-2025.03.20/elevenlabs.jpeg new file mode 100644 index 000000000..320c85da6 Binary files /dev/null and b/docs/src/assets/images/blog/DevLog-2025.03.20/elevenlabs.jpeg differ diff --git a/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-color-slider-dark.png b/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-color-slider-dark.png new file mode 100644 index 000000000..beeb607af Binary files /dev/null and b/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-color-slider-dark.png differ diff --git a/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-color-slider.png b/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-color-slider.png new file mode 100644 index 000000000..1acd807a2 Binary files /dev/null and b/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-color-slider.png differ diff --git a/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-logo-dark.png b/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-logo-dark.png new file mode 100644 index 000000000..067d016b2 Binary files /dev/null and b/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-logo-dark.png differ diff --git a/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-logo.png b/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-logo.png new file mode 100644 index 000000000..d3ea0b8cc Binary files /dev/null and b/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-logo.png differ diff --git a/docs/src/assets/images/blog/DevLog-2025.03.20/modules-i18n.jpeg b/docs/src/assets/images/blog/DevLog-2025.03.20/modules-i18n.jpeg new file mode 100644 index 000000000..7f1a4fc99 Binary files /dev/null and b/docs/src/assets/images/blog/DevLog-2025.03.20/modules-i18n.jpeg differ diff --git a/docs/src/assets/images/blog/DevLog-2025.03.20/new-ui-v4-speech-dark.png b/docs/src/assets/images/blog/DevLog-2025.03.20/new-ui-v4-speech-dark.png new file mode 100644 index 000000000..cc440198d Binary files /dev/null and b/docs/src/assets/images/blog/DevLog-2025.03.20/new-ui-v4-speech-dark.png differ diff --git a/docs/src/assets/images/blog/DevLog-2025.03.20/new-ui-v4-speech.png b/docs/src/assets/images/blog/DevLog-2025.03.20/new-ui-v4-speech.png new file mode 100644 index 000000000..c4a4f2c4e Binary files /dev/null and b/docs/src/assets/images/blog/DevLog-2025.03.20/new-ui-v4-speech.png differ diff --git a/docs/src/assets/images/blog/DevLog-2025.03.20/settings-i18n.jpeg b/docs/src/assets/images/blog/DevLog-2025.03.20/settings-i18n.jpeg new file mode 100644 index 000000000..02b9cdd3c Binary files /dev/null and b/docs/src/assets/images/blog/DevLog-2025.03.20/settings-i18n.jpeg differ diff --git a/docs/src/assets/images/blog/DevLog-2025.03.20/steins-gate-gelnana-from-elpsycongrooblog.webp b/docs/src/assets/images/blog/DevLog-2025.03.20/steins-gate-gelnana-from-elpsycongrooblog.webp new file mode 100644 index 000000000..1d38c1c65 Binary files /dev/null and b/docs/src/assets/images/blog/DevLog-2025.03.20/steins-gate-gelnana-from-elpsycongrooblog.webp differ diff --git a/docs/src/assets/images/blog/DevLog-2025.03.20/steins-gate-mayori.webp b/docs/src/assets/images/blog/DevLog-2025.03.20/steins-gate-mayori.webp new file mode 100644 index 000000000..5247ac8e9 Binary files /dev/null and b/docs/src/assets/images/blog/DevLog-2025.03.20/steins-gate-mayori.webp differ diff --git a/docs/src/content/docs/blog/DevLog-2025.03.10.md b/docs/src/content/docs/blog/DevLog-2025.03.10.md index 8906af9aa..e91342faa 100644 --- a/docs/src/content/docs/blog/DevLog-2025.03.10.md +++ b/docs/src/content/docs/blog/DevLog-2025.03.10.md @@ -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...) - https://github.com/moeru-ai/airi/pull/53 diff --git a/docs/src/content/docs/blog/DevLog-2025.03.20.mdx b/docs/src/content/docs/blog/DevLog-2025.03.20.mdx new file mode 100644 index 000000000..89bf83ae0 --- /dev/null +++ b/docs/src/content/docs/blog/DevLog-2025.03.20.mdx @@ -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! + +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: + +new ui +new ui + +

+ 0 + . + 5 + 7 + 1 + 0 + 2 + 4 +

+ +~~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: + + + +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: + +color slider +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: + +project airi logo for histoire +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: + +brand new speech design +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: + + + +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! + +character from anime Steins;Gate + +

+ 1 + . + 3 + 8 + 2 + 7 + 3 + 3 +

+ +With all of those, we can get this result: + + + +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. + diff --git a/docs/src/content/docs/guides/about-ai-vtuber.md b/docs/src/content/docs/guides/about-ai-vtuber.md new file mode 100644 index 000000000..71d9ddf6c --- /dev/null +++ b/docs/src/content/docs/guides/about-ai-vtuber.md @@ -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/) diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx index 7ed595b77..ca9c5a20b 100644 --- a/docs/src/content/docs/index.mdx +++ b/docs/src/content/docs/index.mdx @@ -16,23 +16,3 @@ hero: icon: right-arrow variant: minimal --- - -{/* -import { Card, CardGrid } from '@astrojs/starlight/components'; - -## Next steps - - - - Edit `src/content/docs/index.mdx` to see this page change. - - - Add Markdown or MDX files to `src/content/docs` to create new pages. - - - Edit your `sidebar` and other config in `astro.config.mjs`. - - - Learn more in [the Starlight Docs](https://starlight.astro.build/). - - */} diff --git a/docs/src/styles/custom.css b/docs/src/styles/custom.css index 71cab1ec6..c949ecfc6 100644 --- a/docs/src/styles/custom.css +++ b/docs/src/styles/custom.css @@ -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; +} diff --git a/docs/src/styles/nixie.css b/docs/src/styles/nixie.css new file mode 100644 index 000000000..fbe299461 --- /dev/null +++ b/docs/src/styles/nixie.css @@ -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; + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a61b62e7a..02058eb22 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -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))':