From a19b836e3ad391834b5ba39f53dd38617f7e897a Mon Sep 17 00:00:00 2001 From: Neko Ayaka Date: Fri, 2 May 2025 00:31:08 +0800 Subject: [PATCH] feat(ui-loading-screens): new package --- .../content/docs/blog/DevLog-2025.03.05.md | 4 +- .../content/docs/blog/DevLog-2025.03.10.md | 2 +- .../content/docs/blog/DevLog-2025.03.20.mdx | 2 +- docs/src/content/docs/guides/index.md | 4 +- .../docs/references/Contributing/guide.md | 2 +- .../references/Design Guidelines/tools.md | 2 +- packages/font-cjkfonts-allseto/package.json | 2 +- packages/font-xiaolai/package.json | 2 +- packages/ui-loading-screens/build.config.ts | 12 ++++ packages/ui-loading-screens/index.html | 25 +++++++ packages/ui-loading-screens/netlify.toml | 13 ++++ packages/ui-loading-screens/package.json | 44 ++++++++++++ .../playground/public/apple-touch-icon.png | Bin 0 -> 6414 bytes .../playground/public/favicon.ico | Bin 0 -> 15086 bytes .../playground/public/favicon.svg | 61 ++++++++++++++++ .../playground/public/maskable_icon_x192.png | Bin 0 -> 6381 bytes .../playground/public/maskable_icon_x512.png | Bin 0 -> 22943 bytes .../public/web-app-manifest-192x192.png | Bin 0 -> 6897 bytes .../public/web-app-manifest-512x512.png | Bin 0 -> 24228 bytes .../ui-loading-screens/playground/src/App.vue | 47 +++++++++++++ .../ui-loading-screens/playground/src/main.ts | 16 +++++ .../playground/src/pages/index.vue | 37 ++++++++++ .../src/components/LoadingLogoWithBar.vue | 65 ++++++++++++++++++ .../src/components/index.ts | 1 + packages/ui-loading-screens/src/index.ts | 1 + packages/ui-loading-screens/tsconfig.json | 31 +++++++++ packages/ui-loading-screens/uno.config.ts | 37 ++++++++++ packages/ui-loading-screens/vite.config.ts | 25 +++++++ packages/ui-transitions/index.html | 2 +- packages/ui-transitions/package.json | 2 +- pnpm-lock.yaml | 56 +++++++++++---- 31 files changed, 469 insertions(+), 26 deletions(-) create mode 100644 packages/ui-loading-screens/build.config.ts create mode 100644 packages/ui-loading-screens/index.html create mode 100755 packages/ui-loading-screens/netlify.toml create mode 100644 packages/ui-loading-screens/package.json create mode 100644 packages/ui-loading-screens/playground/public/apple-touch-icon.png create mode 100644 packages/ui-loading-screens/playground/public/favicon.ico create mode 100644 packages/ui-loading-screens/playground/public/favicon.svg create mode 100644 packages/ui-loading-screens/playground/public/maskable_icon_x192.png create mode 100644 packages/ui-loading-screens/playground/public/maskable_icon_x512.png create mode 100644 packages/ui-loading-screens/playground/public/web-app-manifest-192x192.png create mode 100644 packages/ui-loading-screens/playground/public/web-app-manifest-512x512.png create mode 100644 packages/ui-loading-screens/playground/src/App.vue create mode 100644 packages/ui-loading-screens/playground/src/main.ts create mode 100644 packages/ui-loading-screens/playground/src/pages/index.vue create mode 100644 packages/ui-loading-screens/src/components/LoadingLogoWithBar.vue create mode 100644 packages/ui-loading-screens/src/components/index.ts create mode 100644 packages/ui-loading-screens/src/index.ts create mode 100644 packages/ui-loading-screens/tsconfig.json create mode 100644 packages/ui-loading-screens/uno.config.ts create mode 100644 packages/ui-loading-screens/vite.config.ts diff --git a/docs/src/content/docs/blog/DevLog-2025.03.05.md b/docs/src/content/docs/blog/DevLog-2025.03.05.md index ec3e45eb6..e70bd4444 100644 --- a/docs/src/content/docs/blog/DevLog-2025.03.05.md +++ b/docs/src/content/docs/blog/DevLog-2025.03.05.md @@ -25,7 +25,7 @@ onMounted(async () => { ``` Last week, our corporate designer/artist has submitted our commission for the -basic/first version of Project Airi logo. The feeling of the logo looks like +basic/first version of Project AIRI logo. The feeling of the logo looks like this: ![](../../../assets/images/blog/DevLog-2025.03.05/airi-logos-v1.png) @@ -66,7 +66,7 @@ So this is what we get finally: ![](../../../assets/images/blog/DevLog-2025.03.05/airi-logos-final.png) Later on today, I was working on publishing the -[documentation site](https://airi.build) of Project Airi online, for me, +[documentation site](https://airi.build) of Project AIRI online, for me, and other developers, artists to use it as a reference and guidelines. I did it! And the newly designed logo has been put into the 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 c50e55228..bc2965c33 100644 --- a/docs/src/content/docs/blog/DevLog-2025.03.10.md +++ b/docs/src/content/docs/blog/DevLog-2025.03.10.md @@ -35,7 +35,7 @@ implementing this dotted effect for the buttons: During the development, we found that some of the packages that currently living under the `packages/` directory are actually independent packages that were not -even in the workflow of Project Airi. +even in the workflow of Project AIRI. This means we can now move them out to another place to simplify the installation sizes and building process for the primary repository diff --git a/docs/src/content/docs/blog/DevLog-2025.03.20.mdx b/docs/src/content/docs/blog/DevLog-2025.03.20.mdx index b2ff427ba..2fdb330cf 100644 --- a/docs/src/content/docs/blog/DevLog-2025.03.20.mdx +++ b/docs/src/content/docs/blog/DevLog-2025.03.20.mdx @@ -75,7 +75,7 @@ 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? +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: diff --git a/docs/src/content/docs/guides/index.md b/docs/src/content/docs/guides/index.md index f240672e3..44507acdf 100644 --- a/docs/src/content/docs/guides/index.md +++ b/docs/src/content/docs/guides/index.md @@ -1,8 +1,8 @@ --- title: Getting Started -description: Get to know the UI of Project Airi +description: Get to know the UI of Project AIRI --- For guides that help you understand how to contribute to this project, please refer to [Contributing](../references/contributing/guide/) page. -For references Contributing help you design and improve the UI of Project Airi, please refer to [Design Guidelines](../references/design-guidelines/) page. +For references Contributing help you design and improve the UI of Project AIRI, please refer to [Design Guidelines](../references/design-guidelines/) page. diff --git a/docs/src/content/docs/references/Contributing/guide.md b/docs/src/content/docs/references/Contributing/guide.md index 20d72566f..9b99369ad 100644 --- a/docs/src/content/docs/references/Contributing/guide.md +++ b/docs/src/content/docs/references/Contributing/guide.md @@ -1,6 +1,6 @@ --- title: Contributing -description: Contributing to Project Airi +description: Contributing to Project AIRI --- Hello! Thank you for your interest in contributing to this project. This guide will help you get started. diff --git a/docs/src/content/docs/references/Design Guidelines/tools.md b/docs/src/content/docs/references/Design Guidelines/tools.md index 0e78e0ad1..ca4d45a70 100644 --- a/docs/src/content/docs/references/Design Guidelines/tools.md +++ b/docs/src/content/docs/references/Design Guidelines/tools.md @@ -1,6 +1,6 @@ --- title: Tools -description: Tools for designing the UI, UX for Project Airi +description: Tools for designing the UI, UX for Project AIRI --- ## Colors diff --git a/packages/font-cjkfonts-allseto/package.json b/packages/font-cjkfonts-allseto/package.json index 2bee616a7..15cdd48f0 100644 --- a/packages/font-cjkfonts-allseto/package.json +++ b/packages/font-cjkfonts-allseto/package.json @@ -2,7 +2,7 @@ "name": "@proj-airi/font-cjkfonts-allseto", "type": "module", "private": true, - "description": "A collection of transition animations that used by Project Airi", + "description": "A collection of transition animations that used by Project AIRI", "author": { "name": "Neko Ayaka", "email": "neko@ayaka.moe", diff --git a/packages/font-xiaolai/package.json b/packages/font-xiaolai/package.json index 35c907c77..8d26b69c2 100644 --- a/packages/font-xiaolai/package.json +++ b/packages/font-xiaolai/package.json @@ -2,7 +2,7 @@ "name": "@proj-airi/font-xiaolai", "type": "module", "private": true, - "description": "A collection of transition animations that used by Project Airi", + "description": "A collection of transition animations that used by Project AIRI", "author": { "name": "Neko Ayaka", "email": "neko@ayaka.moe", diff --git a/packages/ui-loading-screens/build.config.ts b/packages/ui-loading-screens/build.config.ts new file mode 100644 index 000000000..1b75cc91b --- /dev/null +++ b/packages/ui-loading-screens/build.config.ts @@ -0,0 +1,12 @@ +import { defineBuildConfig } from 'unbuild' + +export default defineBuildConfig({ + entries: [ + { builder: 'mkdist', input: './src/components/', outDir: './dist/components', pattern: '**/*.vue', loaders: ['vue'] }, + { builder: 'mkdist', input: './src/components/', outDir: './dist/components', pattern: '**/*.ts', format: 'esm', loaders: ['js'] }, + { builder: 'mkdist', input: './src/', outDir: './dist/', pattern: '**/*.ts', format: 'esm', loaders: ['js'] }, + ], + declaration: true, + sourcemap: true, + clean: true, +}) diff --git a/packages/ui-loading-screens/index.html b/packages/ui-loading-screens/index.html new file mode 100644 index 000000000..c786fd008 --- /dev/null +++ b/packages/ui-loading-screens/index.html @@ -0,0 +1,25 @@ + + + + + Project AIRI - UI Loading Screens + + + + + + + + +
+ + + + diff --git a/packages/ui-loading-screens/netlify.toml b/packages/ui-loading-screens/netlify.toml new file mode 100755 index 000000000..d8456f47e --- /dev/null +++ b/packages/ui-loading-screens/netlify.toml @@ -0,0 +1,13 @@ +[build] +base = "/" +command = "pnpm -F @proj-airi/ui-loading-screens... run build" +publish = "/packages/ui-loading-screens/playground/dist" + +[build.environment] +NODE_VERSION = "23" + +[[redirects]] +from = "/*" +to = "/index.html" +status = 200 +force = false diff --git a/packages/ui-loading-screens/package.json b/packages/ui-loading-screens/package.json new file mode 100644 index 000000000..ebdafaff5 --- /dev/null +++ b/packages/ui-loading-screens/package.json @@ -0,0 +1,44 @@ +{ + "name": "@proj-airi/ui-loading-screens", + "type": "module", + "private": true, + "description": "A collection of loading screens that used by Project AIRI", + "author": { + "name": "Neko Ayaka", + "email": "neko@ayaka.moe", + "url": "https://github.com/nekomeowww" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/moeru-ai/airi.git", + "directory": "packages/ui-loading-screens" + }, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs" + } + }, + "scripts": { + "dev": "pnpm run stub", + "stub": "unbuild --stub", + "build": "unbuild && pnpm run play:build", + "play:dev": "vite", + "play:build": "vite build", + "play:preview": "vite preview", + "typecheck": "vue-tsc --noEmit" + }, + "dependencies": { + "@vueuse/core": "^13.1.0", + "vue": "^3.5.13" + }, + "devDependencies": { + "@unocss/reset": "^66.1.0-beta.12", + "@vitejs/plugin-vue": "^5.2.3", + "unplugin-vue-router": "^0.12.0", + "vite-plugin-vue-devtools": "^7.7.5", + "vue-router": "^4.5.1", + "vue-tsc": "^3.0.0-alpha.4" + } +} diff --git a/packages/ui-loading-screens/playground/public/apple-touch-icon.png b/packages/ui-loading-screens/playground/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..30a71010727b1b0261b808c9387e9767c05cfa77 GIT binary patch literal 6414 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 literal 0 HcmV?d00001 diff --git a/packages/ui-loading-screens/playground/public/favicon.ico b/packages/ui-loading-screens/playground/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..aeddd290552c350de823b21ba553e240758152c9 GIT binary patch literal 15086 zcmeI3OK(+G6vt0flMdk<(20pdMo#NTap;h5Ku3-ZBPK@0L`j68i4QO+I}lCOAWlda zplL~jDA0Qgr9!|S*YDi(Z&w%lyzVU)lHO!@?Y;JT{MXu#v+q8)MKM>*7e|j4Mi-0I zuNTFeMNup+*6qVZ@rUsa8>Ro9*NWm@6L`a9Or?0+3j86T+qWK$?%aA<`f~QfyOy zBl`5^>_q&mUE%RL5ElBV=WM}?u_4=~(`3u@d*ff-I0gp!^fAbuFy;Cr6Dj`N;*RpM z4W7uO9rI87w#AT>6%SjKh#wv}bGcGZqK<5~QFNMO&*2xZjw6|EN)^9wHFlvQ)F}F<7Hxfukb6kV8EuZ!uLKDTg0KZ^wn;o z$hO(*%DeiROTrJur^gRZF|_4ZGEmjq@YC0{rsxyCK2*;JpAT#+F5w|(9+Ph?cKZ9q zfLv2f`rtl$;_flz7=vg_A$u8*E=$EO%16Ll4*kK4=i!++17 zX*)4^ebw9ie|LIRZfuklcJNbI47u@>O;NDVnE&*}$$OiM)$DHXr}FXloz3$8-6vI{ zt~NOF4{j(j;8zUre2F+2ANry4?BTn>*FHLH2ws;(4n5 zh-VeDxj7(ta5u#!8KY?$+|r3_7fjA}V|_qw8*Nl`X23ov%$|b(!l|__Fq5ygeEPV$ z#>vZ4XYEiNU(cE3@eHjqe?0yk<6X^(K61jE!CsPk`iJ6;@)3WJwN}l0Ve3O#Ga>gH zhZOM)ZJ#-D_ngmv7asCHB=;@$X2wpeoO!$2B_lu-HrlAL;b%BbA4z` z2l59QILN?@$-v{=tA8-RMRD+ zCRQA8pw?OS*L1F?^G3lbx?t^R);?6zBgk3c6}7;YXd68aeOAns(6U&V(B-8GP345H z2KrCkHd5)eQ+}tlXyq*{eSfEA&)4mMu5TN>>cjKJ_rgR4*I;FWPObA5r{cBv$?2rN-{J62+?qEz|8ZQRjMj(vee+Ik6hHp` z*vS?&H!i-PdE(oBV~_s54b{7ROHOo1?D#jml+HGf`w;&_eY4+UpXXg${uNsn9g=rq z_xt^w)d%CI@$d3m_a|)5^5J*$J$>z(Z>E!G@#}RNLojGO7$4Oeu%YSC`anD#MOrBQtXPtt~ZwFt=RR(%2HX5 z?Y`oPm8aZW?0mSVIBaFnO4mJw)?V0i;=a4x_WP5WubwU1H~sU?%lUnlx_qI}N6!QC zy}ajXj}V<`PyVuY`RzgV`vbR!3Y&CjtM2u6KEt16pq#m&!r}Y9K6@tn`CorN+Tyzm z<Ry`Y_HMU*4*x_vJY?tV&t$482bap|; z%Sl(cA`g|mJ-0k=>c-#oJ}m0W269nX`u<$vaY(lbx3`CVBjmceUQTzvc C3_0)s literal 0 HcmV?d00001 diff --git a/packages/ui-loading-screens/playground/public/favicon.svg b/packages/ui-loading-screens/playground/public/favicon.svg new file mode 100644 index 000000000..0e39ec6a6 --- /dev/null +++ b/packages/ui-loading-screens/playground/public/favicon.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/ui-loading-screens/playground/public/maskable_icon_x192.png b/packages/ui-loading-screens/playground/public/maskable_icon_x192.png new file mode 100644 index 0000000000000000000000000000000000000000..847a45915630f660395c7b02a23c9d9f27c5fd0c GIT binary patch literal 6381 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®-PTpAVgPJ1a5E|AJbseirk5YGSU@^%^Rp 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 B1k3;c literal 0 HcmV?d00001 diff --git a/packages/ui-loading-screens/playground/src/App.vue b/packages/ui-loading-screens/playground/src/App.vue new file mode 100644 index 000000000..1bfa40cfd --- /dev/null +++ b/packages/ui-loading-screens/playground/src/App.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/packages/ui-loading-screens/playground/src/main.ts b/packages/ui-loading-screens/playground/src/main.ts new file mode 100644 index 000000000..9bb11d1d6 --- /dev/null +++ b/packages/ui-loading-screens/playground/src/main.ts @@ -0,0 +1,16 @@ +import { MotionPlugin } from '@vueuse/motion' +import { createApp } from 'vue' +import { createRouter, createWebHashHistory } from 'vue-router' +import { routes } from 'vue-router/auto-routes' + +import App from './App.vue' + +import '@unocss/reset/tailwind.css' +import 'uno.css' + +const router = createRouter({ routes, history: createWebHashHistory() }) + +createApp(App) + .use(MotionPlugin) + .use(router) + .mount('#app') diff --git a/packages/ui-loading-screens/playground/src/pages/index.vue b/packages/ui-loading-screens/playground/src/pages/index.vue new file mode 100644 index 000000000..6bb8f14d4 --- /dev/null +++ b/packages/ui-loading-screens/playground/src/pages/index.vue @@ -0,0 +1,37 @@ + + + diff --git a/packages/ui-loading-screens/src/components/LoadingLogoWithBar.vue b/packages/ui-loading-screens/src/components/LoadingLogoWithBar.vue new file mode 100644 index 000000000..103d3efa2 --- /dev/null +++ b/packages/ui-loading-screens/src/components/LoadingLogoWithBar.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/packages/ui-loading-screens/src/components/index.ts b/packages/ui-loading-screens/src/components/index.ts new file mode 100644 index 000000000..0fab1cdf9 --- /dev/null +++ b/packages/ui-loading-screens/src/components/index.ts @@ -0,0 +1 @@ +export { default as LoadingLogoWithBar } from './LoadingLogoWithBar.vue' diff --git a/packages/ui-loading-screens/src/index.ts b/packages/ui-loading-screens/src/index.ts new file mode 100644 index 000000000..cb64ac1b5 --- /dev/null +++ b/packages/ui-loading-screens/src/index.ts @@ -0,0 +1 @@ +export * from './components' diff --git a/packages/ui-loading-screens/tsconfig.json b/packages/ui-loading-screens/tsconfig.json new file mode 100644 index 000000000..b0e63caa2 --- /dev/null +++ b/packages/ui-loading-screens/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "target": "ESNext", + "lib": [ + "ESNext", + "DOM", + "DOM.Iterable" + ], + "module": "ESNext", + "moduleResolution": "bundler", + "types": [ + "vite/client", + "unplugin-vue-router/client" + ], + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "verbatimModuleSyntax": true, + "skipLibCheck": true + }, + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.mts", + "src/**/*.vue", + "playground/**/*.ts", + "playground/**/*.d.ts", + "playground/**/*.mts", + "playground/**/*.vue" + ] +} diff --git a/packages/ui-loading-screens/uno.config.ts b/packages/ui-loading-screens/uno.config.ts new file mode 100644 index 000000000..241b30eaa --- /dev/null +++ b/packages/ui-loading-screens/uno.config.ts @@ -0,0 +1,37 @@ +import { + defineConfig, + presetAttributify, + presetIcons, + presetTypography, + presetWebFonts, + presetWind3, + transformerDirectives, + transformerVariantGroup, +} from 'unocss' + +export default defineConfig({ + presets: [ + presetWind3(), + presetAttributify(), + presetTypography(), + presetWebFonts({ + fonts: { + sans: 'DM Sans', + serif: 'DM Serif Display', + mono: 'DM Mono', + }, + timeouts: { + warning: 5000, + failure: 10000, + }, + }), + presetIcons({ + scale: 1.2, + }), + ], + transformers: [ + transformerDirectives(), + transformerVariantGroup(), + ], + safelist: 'prose prose-sm m-auto text-left'.split(' '), +}) diff --git a/packages/ui-loading-screens/vite.config.ts b/packages/ui-loading-screens/vite.config.ts new file mode 100644 index 000000000..bdc92d2e1 --- /dev/null +++ b/packages/ui-loading-screens/vite.config.ts @@ -0,0 +1,25 @@ +import { resolve } from 'node:path' +import Vue from '@vitejs/plugin-vue' +import Unocss from 'unocss/vite' +import VueRouter from 'unplugin-vue-router/vite' +import { defineConfig } from 'vite' +import VueDevTools from 'vite-plugin-vue-devtools' + +export default defineConfig({ + build: { + outDir: resolve(import.meta.dirname, 'playground', 'dist'), + }, + plugins: [ + // https://github.com/posva/unplugin-vue-router + VueRouter({ + root: 'playground', + extensions: ['.vue', '.md'], + dts: resolve(import.meta.dirname, 'playground', 'src', 'typed-router.d.ts'), + }), + Vue(), + // https://github.com/antfu/unocss + // see uno.config.ts for config + Unocss(), + VueDevTools(), + ], +}) diff --git a/packages/ui-transitions/index.html b/packages/ui-transitions/index.html index 836d1678a..226e4c47e 100644 --- a/packages/ui-transitions/index.html +++ b/packages/ui-transitions/index.html @@ -2,7 +2,7 @@ - Project Airi - UI Transition Animations + Project AIRI - UI Transition Animations diff --git a/packages/ui-transitions/package.json b/packages/ui-transitions/package.json index c37b45329..e346f2bf4 100644 --- a/packages/ui-transitions/package.json +++ b/packages/ui-transitions/package.json @@ -2,7 +2,7 @@ "name": "@proj-airi/ui-transitions", "type": "module", "private": true, - "description": "A collection of transition animations that used by Project Airi", + "description": "A collection of transition animations that used by Project AIRI", "author": { "name": "Neko Ayaka", "email": "neko@ayaka.moe", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 011e54cf7..788ca17dd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -413,7 +413,7 @@ importers: version: 2.3.0 '@intlify/unplugin-vue-i18n': specifier: ^6.0.8 - version: 6.0.8(@vue/compiler-dom@3.5.13)(eslint@9.25.1(jiti@2.4.2))(rollup@2.79.1)(typescript@5.8.3)(vue-i18n@11.1.3(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3)) + version: 6.0.8(@vue/compiler-dom@3.5.13)(eslint@9.25.1(jiti@2.4.2))(rollup@4.40.0)(typescript@5.8.3)(vue-i18n@11.1.3(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3)) '@proj-airi/lobe-icons': specifier: ^1.0.5 version: 1.0.5 @@ -458,7 +458,7 @@ importers: version: 3.0.0-beta.10(typescript@5.8.3)(vue-tsc@3.0.0-alpha.4(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3)) '@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.3)) + version: 3.0.3(magicast@0.3.5)(rollup@4.40.0)(vue@3.5.13(typescript@5.8.3)) '@xsai-transformers/embed': specifier: ^0.0.5 version: 0.0.5(web-worker@1.5.0) @@ -473,13 +473,13 @@ importers: version: 3.2.0(unocss@66.1.0-beta.12(postcss@8.5.3)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3))) unplugin-auto-import: specifier: ^19.1.2 - version: 19.1.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3))) + version: 19.1.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.40.0))(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3))) unplugin-vue-components: specifier: ^28.5.0 - version: 28.5.0(@babel/parser@7.27.0)(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(vue@3.5.13(typescript@5.8.3)) + version: 28.5.0(@babel/parser@7.27.0)(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.40.0))(vue@3.5.13(typescript@5.8.3)) unplugin-vue-macros: specifier: ^2.14.5 - version: 2.14.5(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3)))(esbuild@0.25.2)(rollup@2.79.1)(typescript@5.8.3)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-tsc@3.0.0-alpha.4(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3)) + version: 2.14.5(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3)))(esbuild@0.25.2)(rollup@4.40.0)(typescript@5.8.3)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-tsc@3.0.0-alpha.4(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3)) unplugin-vue-markdown: specifier: ^28.3.1 version: 28.3.1(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0)) @@ -488,13 +488,13 @@ importers: version: 0.12.0(vue-router@4.5.1(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3)) vite-bundle-visualizer: specifier: ^1.2.1 - version: 1.2.1(rollup@2.79.1) + version: 1.2.1(rollup@4.40.0) vite-plugin-pwa: specifier: ^1.0.0 version: 1.0.0(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(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.5 - version: 7.7.5(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(rollup@2.79.1)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3)) + version: 7.7.5(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.40.0))(rollup@4.40.0)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3)) vite-plugin-vue-layouts: specifier: ^0.11.0 version: 0.11.0(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-router@4.5.1(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3)) @@ -720,7 +720,7 @@ importers: version: 1.2.20 '@intlify/unplugin-vue-i18n': specifier: ^6.0.8 - version: 6.0.8(@vue/compiler-dom@3.5.13)(eslint@9.25.1(jiti@2.4.2))(rollup@4.40.0)(typescript@5.8.3)(vue-i18n@11.1.3(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3)) + version: 6.0.8(@vue/compiler-dom@3.5.13)(eslint@9.25.1(jiti@2.4.2))(rollup@2.79.1)(typescript@5.8.3)(vue-i18n@11.1.3(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3)) '@proj-airi/lobe-icons': specifier: ^1.0.5 version: 1.0.5 @@ -759,7 +759,7 @@ importers: version: 3.0.0-beta.10(typescript@5.8.3)(vue-tsc@3.0.0-alpha.4(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3)) '@vueuse/motion': specifier: ^3.0.3 - version: 3.0.3(magicast@0.3.5)(rollup@4.40.0)(vue@3.5.13(typescript@5.8.3)) + version: 3.0.3(magicast@0.3.5)(rollup@2.79.1)(vue@3.5.13(typescript@5.8.3)) hfup: specifier: ^0.5.0 version: 0.5.0(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0) @@ -771,13 +771,13 @@ importers: version: 4.0.1 unplugin-auto-import: specifier: ^19.1.2 - version: 19.1.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.40.0))(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3))) + version: 19.1.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3))) unplugin-vue-components: specifier: ^28.5.0 - version: 28.5.0(@babel/parser@7.27.0)(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.40.0))(vue@3.5.13(typescript@5.8.3)) + version: 28.5.0(@babel/parser@7.27.0)(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(vue@3.5.13(typescript@5.8.3)) unplugin-vue-macros: specifier: ^2.14.5 - version: 2.14.5(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3)))(esbuild@0.25.2)(rollup@4.40.0)(typescript@5.8.3)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-tsc@3.0.0-alpha.4(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3)) + version: 2.14.5(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3)))(esbuild@0.25.2)(rollup@2.79.1)(typescript@5.8.3)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-tsc@3.0.0-alpha.4(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3)) unplugin-vue-markdown: specifier: ^28.3.1 version: 28.3.1(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0)) @@ -786,13 +786,13 @@ importers: version: 0.12.0(vue-router@4.5.1(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3)) vite-bundle-visualizer: specifier: ^1.2.1 - version: 1.2.1(rollup@4.40.0) + version: 1.2.1(rollup@2.79.1) vite-plugin-pwa: specifier: ^1.0.0 version: 1.0.0(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(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.5 - version: 7.7.5(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.40.0))(rollup@4.40.0)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3)) + version: 7.7.5(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(rollup@2.79.1)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3)) vite-plugin-vue-layouts: specifier: ^0.11.0 version: 0.11.0(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-router@4.5.1(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3)) @@ -1054,6 +1054,34 @@ importers: specifier: ^3.0.0-alpha.4 version: 3.0.0-alpha.4(typescript@5.8.3) + packages/ui-loading-screens: + dependencies: + '@vueuse/core': + specifier: ^13.1.0 + version: 13.1.0(vue@3.5.13(typescript@5.8.3)) + vue: + specifier: ^3.5.13 + version: 3.5.13(typescript@5.8.3) + devDependencies: + '@unocss/reset': + specifier: ^66.1.0-beta.12 + version: 66.1.0-beta.12 + '@vitejs/plugin-vue': + specifier: ^5.2.3 + version: 5.2.3(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3)) + unplugin-vue-router: + specifier: ^0.12.0 + version: 0.12.0(vue-router@4.5.1(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3)) + vite-plugin-vue-devtools: + specifier: ^7.7.5 + version: 7.7.5(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.40.0))(rollup@4.40.0)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3)) + vue-router: + specifier: ^4.5.1 + version: 4.5.1(vue@3.5.13(typescript@5.8.3)) + vue-tsc: + specifier: ^3.0.0-alpha.4 + version: 3.0.0-alpha.4(typescript@5.8.3) + packages/ui-transitions: dependencies: '@vueuse/core':