From 12264177682522353731d9553678af1e174e5c46 Mon Sep 17 00:00:00 2001 From: Neko Ayaka Date: Tue, 4 Aug 2026 03:22:52 +0800 Subject: [PATCH] refactor(*): new button --- .../src/pages/devtools/background-removal.vue | 13 +- .../connection/server-channel-qr-scanner.vue | 6 +- apps/stage-tamagotchi/src/main/index.ts | 8 +- .../src/main/windows/editor/index.ts | 71 +++ .../main/windows/editor/rpc/index.electron.ts | 33 + .../src/main/windows/main/index.ts | 3 + .../main/windows/main/rpc/index.electron.ts | 5 +- apps/stage-tamagotchi/src/renderer/App.vue | 5 +- .../renderer/components/WithScreenCapture.vue | 2 +- .../controls-island/control-button.vue | 13 +- .../controls-island-stop-speaking.vue | 4 +- .../src/renderer/pages/about.vue | 16 +- .../pages/devtools/global-shortcut.vue | 13 +- .../src/renderer/pages/devtools/updater.vue | 6 +- .../pages/devtools/widgets-calling.vue | 17 +- .../src/renderer/pages/editor/index.vue | 8 + .../renderer/pages/notice/fade-on-hover.vue | 2 +- .../pages/settings/connection/index.vue | 12 +- .../connection/server-channel-qr-card.vue | 6 +- .../components/desktop-folder-section.vue | 2 +- .../data/components/desktop-reset-section.vue | 4 +- .../renderer/pages/settings/models/index.vue | 10 +- .../components/McpConnectionTestPanel.vue | 2 +- .../modules/components/McpJsonEditor.vue | 12 +- .../modules/components/McpServerForm.vue | 11 +- .../renderer/pages/settings/modules/mcp.vue | 17 +- .../src/shared/eventa/index.ts | 1 + .../src/pages/devtools/background-removal.vue | 13 +- .../src/pages/devtools/web-haptics.vue | 11 +- .../characters/components/CharacterDialog.vue | 6 +- .../src/components/auth-notice.vue | 2 +- apps/ui-server-auth/src/pages/[...all].vue | 2 +- .../src/pages/electron-callback.vue | 2 +- apps/ui-server-auth/src/pages/profile.vue | 4 +- docs/ai/context/ui-components.md | 51 +- .../InteractiveArea/Actions/ViewControls.vue | 10 +- .../src/pages/devtools/beat-sync.vue | 2 +- .../components/io-tracer-controls.vue | 3 +- .../src/pages/devtools/plugin-host.vue | 12 +- ...ders-transcription-realtime-aliyun-nls.vue | 6 +- .../pages/devtools/websocket-inspector.vue | 6 +- .../account/account-settings-page.vue | 50 +- .../components/CardCreationDialog.vue | 5 +- .../airi-card/components/CardDetailDialog.vue | 6 +- .../airi-card/components/DeleteCardDialog.vue | 7 +- .../tabs/CardCreationTabArtistry.vue | 17 +- .../data/components/chats-section.vue | 6 +- .../data/components/danger-section.vue | 4 +- .../components/models-modules-section.vue | 4 +- .../settings/providers/artistry/comfyui.vue | 16 +- .../aliyun-nls-transcription.vue | 4 +- .../src/pages/settings/scene/index.vue | 8 +- packages/stage-pages/src/pages/v2/index.vue | 10 +- .../providers/edit/[providerId]/index.vue | 14 +- packages/stage-ui/package.json | 1 + .../src/components/auth/SignInPanel.vue | 2 +- .../src/components/misc/button.story.vue | 159 +++-- .../misc/double-check-button.story.vue | 4 +- .../modules/GamingModuleSettings.vue | 2 +- .../components/modules/MessagingDiscord.vue | 2 +- .../stage-ui/src/components/modules/X.vue | 2 +- .../scenarios/chat/components/error-item.vue | 7 +- .../dialogs/bug-report/bug-report-trigger.vue | 3 +- .../model-selector/Live2DReportModal.vue | 18 +- .../dialogs/model-selector/model-selector.vue | 2 +- .../model-selector/tachieReportModal.vue | 8 +- .../onboarding/step-analytics-notice.vue | 2 +- .../onboarding/step-model-selection.vue | 2 +- .../dialogs/onboarding/step-welcome.vue | 2 +- .../provider-validation-details-dialog.vue | 4 +- .../scenarios/settings/ModelCacheManager.vue | 11 +- .../src/components/scenarios/settings/bar.vue | 2 +- .../scenarios/settings/button-bar.vue | 2 +- .../settings/model-settings/live2d.vue | 10 +- .../scenarios/settings/model-settings/mmd.vue | 14 +- .../settings/model-settings/panel.vue | 2 +- .../settings/model-settings/spine.vue | 2 +- .../settings/model-settings/tachie.vue | 2 +- .../scenarios/settings/model-settings/vrm.vue | 8 +- .../toasters/toaster-pwa-update-ready.vue | 2 +- .../ui/src/components/misc/basic-button.vue | 50 ++ .../ui/src/components/misc/button-types.ts | 39 ++ packages/ui/src/components/misc/button.vue | 592 +++++++++++++----- .../src/components/misc/container-error.vue | 12 +- .../components/misc/double-check-button.vue | 69 +- .../ui/src/components/misc/ghost-button.vue | 49 ++ .../ui/src/components/misc/icon-button.vue | 18 + packages/ui/src/components/misc/index.ts | 5 + .../ui/src/components/misc/overlay-button.vue | 24 + pnpm-lock.yaml | 3 + 90 files changed, 1157 insertions(+), 562 deletions(-) create mode 100644 apps/stage-tamagotchi/src/main/windows/editor/index.ts create mode 100644 apps/stage-tamagotchi/src/main/windows/editor/rpc/index.electron.ts create mode 100644 apps/stage-tamagotchi/src/renderer/pages/editor/index.vue create mode 100644 packages/ui/src/components/misc/basic-button.vue create mode 100644 packages/ui/src/components/misc/button-types.ts create mode 100644 packages/ui/src/components/misc/ghost-button.vue create mode 100644 packages/ui/src/components/misc/icon-button.vue create mode 100644 packages/ui/src/components/misc/overlay-button.vue diff --git a/apps/stage-pocket/src/pages/devtools/background-removal.vue b/apps/stage-pocket/src/pages/devtools/background-removal.vue index f2f026b63..cccf52775 100644 --- a/apps/stage-pocket/src/pages/devtools/background-removal.vue +++ b/apps/stage-pocket/src/pages/devtools/background-removal.vue @@ -1,6 +1,6 @@ diff --git a/apps/stage-tamagotchi/src/renderer/components/stage-islands/controls-island/controls-island-stop-speaking.vue b/apps/stage-tamagotchi/src/renderer/components/stage-islands/controls-island/controls-island-stop-speaking.vue index 5d2c7ee02..4870c4397 100644 --- a/apps/stage-tamagotchi/src/renderer/components/stage-islands/controls-island/controls-island-stop-speaking.vue +++ b/apps/stage-tamagotchi/src/renderer/components/stage-islands/controls-island/controls-island-stop-speaking.vue @@ -25,14 +25,14 @@ const { stopAllSpeaking } = useStopSpeakingButton() v-if="nowSpeaking" key="active" :class="iconClass" - i-carbon:face-activated + i-ph:speaker-simple-high text-red-500 />
diff --git a/apps/stage-tamagotchi/src/renderer/pages/about.vue b/apps/stage-tamagotchi/src/renderer/pages/about.vue index 3cab98476..3e60d80ab 100644 --- a/apps/stage-tamagotchi/src/renderer/pages/about.vue +++ b/apps/stage-tamagotchi/src/renderer/pages/about.vue @@ -315,7 +315,7 @@ onMounted(() => {
{{ restartButtonLabel }} @@ -379,7 +380,8 @@ onMounted(() => {
- -
@@ -449,10 +451,10 @@ onMounted(() => {
- -
diff --git a/apps/stage-tamagotchi/src/renderer/pages/devtools/global-shortcut.vue b/apps/stage-tamagotchi/src/renderer/pages/devtools/global-shortcut.vue index 746254486..aad55ea1a 100644 --- a/apps/stage-tamagotchi/src/renderer/pages/devtools/global-shortcut.vue +++ b/apps/stage-tamagotchi/src/renderer/pages/devtools/global-shortcut.vue @@ -211,17 +211,18 @@ onUnmounted(() => { />
- - @@ -305,7 +306,7 @@ onUnmounted(() => { diff --git a/apps/stage-tamagotchi/src/renderer/pages/editor/index.vue b/apps/stage-tamagotchi/src/renderer/pages/editor/index.vue new file mode 100644 index 000000000..2cfae436a --- /dev/null +++ b/apps/stage-tamagotchi/src/renderer/pages/editor/index.vue @@ -0,0 +1,8 @@ + + + +meta: + layout: plain + diff --git a/apps/stage-tamagotchi/src/renderer/pages/notice/fade-on-hover.vue b/apps/stage-tamagotchi/src/renderer/pages/notice/fade-on-hover.vue index 7e9d5ef42..6fe8f5b1c 100644 --- a/apps/stage-tamagotchi/src/renderer/pages/notice/fade-on-hover.vue +++ b/apps/stage-tamagotchi/src/renderer/pages/notice/fade-on-hover.vue @@ -216,7 +216,7 @@ async function handleAction(action: 'confirm' | 'cancel' | 'close') {
-
diff --git a/apps/stage-tamagotchi/src/renderer/pages/settings/data/components/desktop-reset-section.vue b/apps/stage-tamagotchi/src/renderer/pages/settings/data/components/desktop-reset-section.vue index fa21a8e73..35f3f9dc6 100644 --- a/apps/stage-tamagotchi/src/renderer/pages/settings/data/components/desktop-reset-section.vue +++ b/apps/stage-tamagotchi/src/renderer/pages/settings/data/components/desktop-reset-section.vue @@ -57,10 +57,10 @@ async function handleCenterMainWindow() {

- - + {{ t('settings.pages.data.sections.desktop.reset') }} diff --git a/apps/stage-tamagotchi/src/renderer/pages/settings/modules/components/McpServerForm.vue b/apps/stage-tamagotchi/src/renderer/pages/settings/modules/components/McpServerForm.vue index e85a48c4b..d991df5ee 100644 --- a/apps/stage-tamagotchi/src/renderer/pages/settings/modules/components/McpServerForm.vue +++ b/apps/stage-tamagotchi/src/renderer/pages/settings/modules/components/McpServerForm.vue @@ -1,7 +1,7 @@ - -
-
-
+ + + +
+
+
- -
-
- -
-
- -
-
-
- - -
-
-
- - -
+ +
- -
- - + +
+ + + + +
+
+ + +
+ + +
diff --git a/packages/stage-ui/src/components/misc/double-check-button.story.vue b/packages/stage-ui/src/components/misc/double-check-button.story.vue index f925af117..5f37721c5 100644 --- a/packages/stage-ui/src/components/misc/double-check-button.story.vue +++ b/packages/stage-ui/src/components/misc/double-check-button.story.vue @@ -34,7 +34,7 @@ function note(message: string) { @@ -66,7 +66,7 @@ function note(message: string) { Never mind diff --git a/packages/stage-ui/src/components/modules/GamingModuleSettings.vue b/packages/stage-ui/src/components/modules/GamingModuleSettings.vue index f37297332..ebe48c375 100644 --- a/packages/stage-ui/src/components/modules/GamingModuleSettings.vue +++ b/packages/stage-ui/src/components/modules/GamingModuleSettings.vue @@ -72,7 +72,7 @@ function saveSettings() {
diff --git a/packages/stage-ui/src/components/modules/MessagingDiscord.vue b/packages/stage-ui/src/components/modules/MessagingDiscord.vue index b22d0a569..a2020ea38 100644 --- a/packages/stage-ui/src/components/modules/MessagingDiscord.vue +++ b/packages/stage-ui/src/components/modules/MessagingDiscord.vue @@ -33,7 +33,7 @@ function saveSettings() {
diff --git a/packages/stage-ui/src/components/modules/X.vue b/packages/stage-ui/src/components/modules/X.vue index 52ef1de2f..08295b1c8 100644 --- a/packages/stage-ui/src/components/modules/X.vue +++ b/packages/stage-ui/src/components/modules/X.vue @@ -57,7 +57,7 @@ function saveSettings() {
diff --git a/packages/stage-ui/src/components/scenarios/chat/components/error-item.vue b/packages/stage-ui/src/components/scenarios/chat/components/error-item.vue index 47b72f2b9..92ab7cb8d 100644 --- a/packages/stage-ui/src/components/scenarios/chat/components/error-item.vue +++ b/packages/stage-ui/src/components/scenarios/chat/components/error-item.vue @@ -2,7 +2,7 @@ import type { ChatHistoryItem, ErrorMessage } from '../../../../types/chat' import { isStageCapacitor, isStageWeb } from '@proj-airi/stage-shared' -import { Button } from '@proj-airi/ui' +import { IconButton } from '@proj-airi/ui' import { computed } from 'vue' import { MarkdownRenderer } from '../../../markdown' @@ -86,10 +86,7 @@ const copyText = computed(() => getChatHistoryItemCopyText(props.message as Chat 'self-end mt-1 w-fit', ]" > -