From 3f4fde48648b11e0f3bb87d7720b3a6b6a9cc1cf Mon Sep 17 00:00:00 2001 From: Neko Ayaka Date: Mon, 5 Jan 2026 14:33:40 +0800 Subject: [PATCH] feat(stage-pages,stage-ui,ui): character list for v2 --- apps/stage-web/package.json | 2 + packages/stage-pages/src/pages/v2/index.vue | 372 ++++++++++++++++++ .../stage-pages/src/pages/v2/settings.vue | 7 + .../src/components/menu/CharacterCard.vue | 9 +- packages/ui/src/components/Misc/Button.vue | 22 +- pnpm-lock.yaml | 38 +- pnpm-workspace.yaml | 39 +- 7 files changed, 457 insertions(+), 32 deletions(-) create mode 100644 packages/stage-pages/src/pages/v2/index.vue create mode 100644 packages/stage-pages/src/pages/v2/settings.vue diff --git a/apps/stage-web/package.json b/apps/stage-web/package.json index 0ef719ea5..15ba6ff43 100644 --- a/apps/stage-web/package.json +++ b/apps/stage-web/package.json @@ -98,12 +98,14 @@ "devDependencies": { "@iconify-json/carbon": "^1.2.15", "@iconify-json/eos-icons": "^1.2.4", + "@iconify-json/logos": "catalog:", "@iconify-json/lucide": "^1.2.82", "@iconify-json/mingcute": "^1.2.6", "@iconify-json/ph": "^1.2.2", "@iconify-json/simple-icons": "^1.2.63", "@iconify-json/solar": "^1.2.5", "@iconify-json/svg-spinners": "^1.2.4", + "@iconify-json/tabler": "catalog:", "@iconify-json/vscode-icons": "^1.2.37", "@intlify/unplugin-vue-i18n": "^11.0.1", "@proj-airi/lobe-icons": "^1.0.18", diff --git a/packages/stage-pages/src/pages/v2/index.vue b/packages/stage-pages/src/pages/v2/index.vue new file mode 100644 index 000000000..62cf8598c --- /dev/null +++ b/packages/stage-pages/src/pages/v2/index.vue @@ -0,0 +1,372 @@ + + + diff --git a/packages/stage-pages/src/pages/v2/settings.vue b/packages/stage-pages/src/pages/v2/settings.vue new file mode 100644 index 000000000..a78fb6fd3 --- /dev/null +++ b/packages/stage-pages/src/pages/v2/settings.vue @@ -0,0 +1,7 @@ + + + diff --git a/packages/stage-ui/src/components/menu/CharacterCard.vue b/packages/stage-ui/src/components/menu/CharacterCard.vue index c35f106a3..f42da8b62 100644 --- a/packages/stage-ui/src/components/menu/CharacterCard.vue +++ b/packages/stage-ui/src/components/menu/CharacterCard.vue @@ -127,16 +127,15 @@ const cssVars = computed(() => {
-
+
{{ title }}
@@ -162,7 +161,7 @@ const cssVars = computed(() => {
-
+
{{ description }}
diff --git a/packages/ui/src/components/Misc/Button.vue b/packages/ui/src/components/Misc/Button.vue index 9f22e19cb..b2c0947a2 100644 --- a/packages/ui/src/components/Misc/Button.vue +++ b/packages/ui/src/components/Misc/Button.vue @@ -43,6 +43,8 @@ const variantClasses: Record = { // Base classes that are always applied const baseClasses = computed(() => [ - 'rounded-lg font-medium outline-none', + 'font-medium outline-none', 'transition-all duration-200 ease-in-out', 'disabled:cursor-not-allowed disabled:opacity-50', - 'backdrop-blur-md', props.block ? 'w-full' : '', sizeClasses[props.size], ...variantClasses[props.variant][props.theme].default, - props.toggled ? variantClasses[props.variant][props.theme].toggled || '' : variantClasses[props.variant][props.theme].nonToggled || '', - { 'opacity-50 cursor-not-allowed': isDisabled.value }, - + props.toggled + ? variantClasses[props.variant][props.theme].toggled || '' + : variantClasses[props.variant][props.theme].nonToggled || '', + isDisabled.value ? 'opacity-50 cursor-not-allowed' : '', ]) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ae2325b7..3c3f2b033 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,6 +21,12 @@ catalogs: '@guiiai/logg': specifier: ^1.2.11 version: 1.2.11 + '@iconify-json/logos': + specifier: ^1.2.10 + version: 1.2.10 + '@iconify-json/tabler': + specifier: ^1.2.26 + version: 1.2.26 '@moeru/eslint-config': specifier: 0.1.0-beta.14 version: 0.1.0-beta.14 @@ -1362,6 +1368,9 @@ importers: '@iconify-json/eos-icons': specifier: ^1.2.4 version: 1.2.4 + '@iconify-json/logos': + specifier: 'catalog:' + version: 1.2.10 '@iconify-json/lucide': specifier: ^1.2.82 version: 1.2.82 @@ -1380,6 +1389,9 @@ importers: '@iconify-json/svg-spinners': specifier: ^1.2.4 version: 1.2.4 + '@iconify-json/tabler': + specifier: 'catalog:' + version: 1.2.26 '@iconify-json/vscode-icons': specifier: ^1.2.37 version: 1.2.37 @@ -2696,7 +2708,7 @@ importers: version: 66.5.11 '@wxt-dev/module-vue': specifier: ^1.0.3 - version: 1.0.3(vite@7.3.0(@types/node@24.10.4)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3))(wxt@0.20.13(@types/node@24.10.4)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(rollup@4.54.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 1.0.3(vite@8.0.0-beta.5(@types/node@24.10.4)(esbuild@0.25.12)(jiti@2.6.1)(less@4.5.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3))(wxt@0.20.13(@types/node@24.10.4)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(rollup@4.54.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) vue-tsc: specifier: ^3.1.8 version: 3.2.1(typescript@5.9.3) @@ -5092,6 +5104,9 @@ packages: '@iconify-json/eos-icons@1.2.4': resolution: {integrity: sha512-gp2BCSF3+aRgMqE7LRAVxT5nXJLOtfcvGnOYwJz4gc4zxcEqAaOByxFVLZej15jXPRJmUv2TSzMNrQ2gDtw4VA==} + '@iconify-json/logos@1.2.10': + resolution: {integrity: sha512-qxaXKJ6fu8jzTMPQdHtNxlfx6tBQ0jXRbHZIYy5Ilh8Lx9US9FsAdzZWUR8MXV8PnWTKGDFO4ZZee9VwerCyMA==} + '@iconify-json/lucide@1.2.82': resolution: {integrity: sha512-fHZWegspOZonl5GNTvOkHsjnTMdSslFh3EzpzUtRyLxO8bOonqk2OTU3hCl0k4VXzViMjqpRK3X1sotnuBXkFA==} @@ -5110,6 +5125,9 @@ packages: '@iconify-json/svg-spinners@1.2.4': resolution: {integrity: sha512-ayn0pogFPwJA1WFZpDnoq9/hjDxN+keeCMyThaX4d3gSJ3y0mdKUxIA/b1YXWGtY9wVtZmxwcvOIeEieG4+JNg==} + '@iconify-json/tabler@1.2.26': + resolution: {integrity: sha512-92G+ZD70AZgeJf07JfQzH+isnai6DwPcMBuF/qL1F+xAxdXCJzGd3w2RmsRvOmB+w1ImmWEEDms50QivQIjd6g==} + '@iconify-json/twemoji@1.2.5': resolution: {integrity: sha512-uKpuIEV0v6K5BW3Mjdyl+XKFVAbbcPxAgifKvEMtZoUZB5+YiY5zaMm2uNNCxyXzAWU9yNLlj41WU6/mvgALsw==} @@ -17953,6 +17971,10 @@ snapshots: dependencies: '@iconify/types': 2.0.0 + '@iconify-json/logos@1.2.10': + dependencies: + '@iconify/types': 2.0.0 + '@iconify-json/lucide@1.2.82': dependencies: '@iconify/types': 2.0.0 @@ -17977,6 +17999,10 @@ snapshots: dependencies: '@iconify/types': 2.0.0 + '@iconify-json/tabler@1.2.26': + dependencies: + '@iconify/types': 2.0.0 + '@iconify-json/twemoji@1.2.5': dependencies: '@iconify/types': 2.0.0 @@ -21231,6 +21257,12 @@ snapshots: vite: 7.3.0(@types/node@24.10.4)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) vue: 3.5.25(typescript@5.9.3) + '@vitejs/plugin-vue@6.0.3(vite@8.0.0-beta.5(@types/node@24.10.4)(esbuild@0.25.12)(jiti@2.6.1)(less@4.5.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3))': + dependencies: + '@rolldown/pluginutils': 1.0.0-beta.53 + vite: 8.0.0-beta.5(@types/node@24.10.4)(esbuild@0.25.12)(jiti@2.6.1)(less@4.5.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vue: 3.5.25(typescript@5.9.3) + '@vitest/browser-playwright@4.0.16(bufferutil@4.1.0)(playwright@1.57.0)(utf-8-validate@5.0.10)(vite@7.3.0(@types/node@24.10.4)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vitest@4.0.16)': dependencies: '@vitest/browser': 4.0.16(bufferutil@4.1.0)(utf-8-validate@5.0.10)(vite@7.3.0(@types/node@24.10.4)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vitest@4.0.16) @@ -21997,9 +22029,9 @@ snapshots: '@types/filesystem': 0.0.36 '@types/har-format': 1.2.16 - '@wxt-dev/module-vue@1.0.3(vite@7.3.0(@types/node@24.10.4)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3))(wxt@0.20.13(@types/node@24.10.4)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(rollup@4.54.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@wxt-dev/module-vue@1.0.3(vite@8.0.0-beta.5(@types/node@24.10.4)(esbuild@0.25.12)(jiti@2.6.1)(less@4.5.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3))(wxt@0.20.13(@types/node@24.10.4)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(rollup@4.54.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - '@vitejs/plugin-vue': 6.0.3(vite@7.3.0(@types/node@24.10.4)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3)) + '@vitejs/plugin-vue': 6.0.3(vite@8.0.0-beta.5(@types/node@24.10.4)(esbuild@0.25.12)(jiti@2.6.1)(less@4.5.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3)) wxt: 0.20.13(@types/node@24.10.4)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(rollup@4.54.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - vite diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 980ad6f6b..c791ab0e4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,7 +1,3 @@ -catalogMode: prefer - -shellEmulator: true - packages: - packages/** - plugins/** @@ -11,25 +7,15 @@ packages: - apps/** - '!**/dist/**' -overrides: - array-flatten: npm:@nolyfill/array-flatten@^1.0.44 - axios: npm:feaxios@^0.0.23 - is-core-module: npm:@nolyfill/is-core-module@^1.0.39 - isarray: npm:@nolyfill/isarray@^1.0.44 - safe-buffer: npm:@nolyfill/safe-buffer@^1.0.44 - safer-buffer: npm:@nolyfill/safer-buffer@^1.0.44 - side-channel: npm:@nolyfill/side-channel@^1.0.44 - string.prototype.matchall: npm:@nolyfill/string.prototype.matchall@^1.0.44 - -patchedDependencies: - srvx@0.9.8: patches/srvx@0.9.8.patch - catalog: '@capacitor/cli': ^8.0.0 '@capacitor/core': ^8.0.0 '@capacitor/ios': ^8.0.0 '@capacitor/local-notifications': ^8.0.0 '@guiiai/logg': ^1.2.11 + '@iconify-json/logos': ^1.2.10 + '@iconify-json/material-icon-theme': ^1.2.45 + '@iconify-json/tabler': ^1.2.26 '@moeru/eslint-config': 0.1.0-beta.14 '@moeru/std': 0.1.0-beta.14 '@nekopaw/tempora': 0.4.0-alpha.1 @@ -64,6 +50,8 @@ catalog: xsschema: ^0.4.0-beta.12 zod: ^4.2.1 +catalogMode: prefer + catalogs: rolldown-vite: vite: npm:rolldown-vite@^7.3.0 @@ -72,7 +60,7 @@ catalogs: '@vitest/coverage-v8': ^4.0.16 vitest: ^4.0.16 xsai: - 'unspeech': ^0.1.11 + unspeech: ^0.1.11 onlyBuiltDependencies: - '@discordjs/opus' @@ -96,3 +84,18 @@ onlyBuiltDependencies: - spawn-sync - utf-8-validate - vue-demi + +overrides: + array-flatten: npm:@nolyfill/array-flatten@^1.0.44 + axios: npm:feaxios@^0.0.23 + is-core-module: npm:@nolyfill/is-core-module@^1.0.39 + isarray: npm:@nolyfill/isarray@^1.0.44 + safe-buffer: npm:@nolyfill/safe-buffer@^1.0.44 + safer-buffer: npm:@nolyfill/safer-buffer@^1.0.44 + side-channel: npm:@nolyfill/side-channel@^1.0.44 + string.prototype.matchall: npm:@nolyfill/string.prototype.matchall@^1.0.44 + +patchedDependencies: + srvx@0.9.8: patches/srvx@0.9.8.patch + +shellEmulator: true