diff --git "a/docs/UX\343\203\273UI\343\203\207\343\202\266\343\202\244\343\203\263\343\201\256\346\226\271\351\207\235.md" "b/docs/UX\343\203\273UI\343\203\207\343\202\266\343\202\244\343\203\263\343\201\256\346\226\271\351\207\235.md" index 6c8a20e3c1..0ad1f49609 100644 --- "a/docs/UX\343\203\273UI\343\203\207\343\202\266\343\202\244\343\203\263\343\201\256\346\226\271\351\207\235.md" +++ "b/docs/UX\343\203\273UI\343\203\207\343\202\266\343\202\244\343\203\263\343\201\256\346\226\271\351\207\235.md" @@ -59,9 +59,16 @@ - それ以外はトーストで通知(`SHOW_NOTIFY_`系) - 例: 音声を書き出しました。 - 例: エンジンが異常終了しました。エンジンの再起動が必要です。 -- ダイアログの warning と confirm の使い分け - - 続行することが望まれそうな場合は confirm - - キャンセルすることが望まれそうな場合は warning +- ダイアログに関して + - warning と confirm の使い分け + - 続行することが望まれそうな場合は confirm + - キャンセルすることが望まれそうな場合は warning + - ダイアログの文面 + - タイトルは疑問文「~しますか?」 + - 本文は簡潔にし、「よろしいですか?」などを避ける + - ボタンの色 + - 肯定的で、そちらを選ぶ可能性が高いボタンはPrimary色にする + - 破壊的で、状態を戻すのに手間がかかる操作を行うボタンはWarningn色にする ## 文章など diff --git a/src/components/Dialog/Dialog.ts b/src/components/Dialog/Dialog.ts index 10278dfa40..93f088d961 100644 --- a/src/components/Dialog/Dialog.ts +++ b/src/components/Dialog/Dialog.ts @@ -16,7 +16,7 @@ import { withProgress } from "@/store/ui"; type MediaType = "audio" | "text"; export type TextDialogResult = "OK" | "CANCEL"; -export type AlertDialogOptions = { +export type MessageDialogOptions = { type?: DialogType; title: string; message: string; @@ -26,21 +26,23 @@ export type ConfirmDialogOptions = { type?: DialogType; title: string; message: string; - actionName: string; + actionName: string; // ボタンテキスト + isPrimaryColorButton?: boolean; // ボタンをPrimary色にするか cancel?: string; }; export type WarningDialogOptions = { type?: DialogType; title: string; message: string; - actionName: string; + actionName: string; // ボタンテキスト + isWarningColorButton?: boolean; // ボタンをWarning色にするか cancel?: string; }; export type QuestionDialogOptions = { type?: DialogType; title: string; message: string; - buttons: string[]; + buttons: (string | { text: string; color: string })[]; cancel: number; default?: number; }; @@ -55,7 +57,9 @@ export type NotifyAndNotShowAgainButtonOption = { export type LoadingScreenOption = { message: string }; // 汎用ダイアログを表示 -export const showAlertDialog = async (options: AlertDialogOptions) => { + +/** メッセージを知らせるダイアログ */ +export const showMessageDialog = async (options: MessageDialogOptions) => { options.ok ??= "閉じる"; const { promise, resolve } = Promise.withResolvers(); @@ -74,6 +78,17 @@ export const showAlertDialog = async (options: AlertDialogOptions) => { return "OK" as const; }; +/** エラーが起こったことを知らせるダイアログ */ +export const showAlertDialog = async ( + options: Omit, +) => { + return await showMessageDialog({ + ...options, + type: "error", + }); +}; + +/** 続行することが望まれそうな場合の質問ダイアログ */ export const showConfirmDialog = async (options: ConfirmDialogOptions) => { options.cancel ??= "キャンセル"; @@ -84,7 +99,12 @@ export const showConfirmDialog = async (options: ConfirmDialogOptions) => { type: options.type ?? "question", title: options.title, message: options.message, - buttons: [options.cancel, options.actionName], + buttons: [ + options.cancel, + options.isPrimaryColorButton + ? { text: options.actionName, color: "primary" } + : options.actionName, + ], default: 1, }, }).onOk(({ index }: { index: number }) => resolve(index)); @@ -94,6 +114,7 @@ export const showConfirmDialog = async (options: ConfirmDialogOptions) => { return index === 1 ? "OK" : "CANCEL"; }; +/** キャンセルすることが望まれそうな場合の質問ダイアログ */ export const showWarningDialog = async (options: WarningDialogOptions) => { options.cancel ??= "キャンセル"; @@ -104,7 +125,12 @@ export const showWarningDialog = async (options: WarningDialogOptions) => { type: options.type ?? "warning", title: options.title, message: options.message, - buttons: [options.cancel, options.actionName], + buttons: [ + options.cancel, + options.isWarningColorButton + ? { text: options.actionName, color: "warning" } + : options.actionName, + ], default: 0, }, }).onOk(({ index }: { index: number }) => resolve(index)); @@ -114,6 +140,7 @@ export const showWarningDialog = async (options: WarningDialogOptions) => { return index === 1 ? "OK" : "CANCEL"; }; +/** キャンセル以外に複数の選択肢がある質問ダイアログ */ export const showQuestionDialog = async (options: QuestionDialogOptions) => { const { promise, resolve } = Promise.withResolvers(); Dialog.create({ diff --git a/src/components/Dialog/DictionaryManageDialog.vue b/src/components/Dialog/DictionaryManageDialog.vue index 8ac6d412c1..50564d6c19 100644 --- a/src/components/Dialog/DictionaryManageDialog.vue +++ b/src/components/Dialog/DictionaryManageDialog.vue @@ -599,9 +599,10 @@ const saveWord = async () => { }; const deleteWord = async () => { const result = await store.actions.SHOW_WARNING_DIALOG({ - title: "登録された単語を削除しますか?", + title: "単語を削除しますか?", message: "削除された単語は元に戻せません。", - actionName: "削除", + actionName: "削除する", + isWarningColorButton: true, }); if (result === "OK") { try { @@ -625,7 +626,7 @@ const resetWord = async (id: string) => { const result = await store.actions.SHOW_WARNING_DIALOG({ title: "単語の変更をリセットしますか?", message: "単語の変更は破棄されてリセットされます。", - actionName: "リセット", + actionName: "リセットする", }); if (result === "OK") { selectedId.value = id; @@ -640,7 +641,8 @@ const discardOrNotDialog = async (okCallback: () => void) => { const result = await store.actions.SHOW_WARNING_DIALOG({ title: "単語の追加・変更を破棄しますか?", message: "破棄すると、単語の追加・変更はリセットされます。", - actionName: "破棄", + actionName: "破棄する", + isWarningColorButton: true, }); if (result === "OK") { okCallback(); diff --git a/src/components/Dialog/EngineManageDialog.vue b/src/components/Dialog/EngineManageDialog.vue index 4e7c19403a..4805899a1f 100644 --- a/src/components/Dialog/EngineManageDialog.vue +++ b/src/components/Dialog/EngineManageDialog.vue @@ -409,10 +409,10 @@ const getEngineDirValidationMessage = (result: EngineDirValidationResult) => { const addEngine = async () => { const result = await store.actions.SHOW_WARNING_DIALOG({ - title: "エンジン追加の確認", + title: "エンジンを追加しますか?", message: "この操作はコンピュータに損害を与える可能性があります。エンジンの配布元が信頼できない場合は追加しないでください。", - actionName: "追加", + actionName: "追加する", }); if (result === "OK") { if (engineLoaderType.value === "dir") { @@ -424,7 +424,7 @@ const addEngine = async () => { ); void requireReload( - "エンジンを追加しました。反映には再読み込みが必要です。今すぐ再読み込みしますか?", + "エンジンを追加しました。反映には再読み込みが必要です。", ); } else { const success = await lockUi( @@ -433,7 +433,7 @@ const addEngine = async () => { ); if (success) { void requireReload( - "エンジンを追加しました。反映には再読み込みが必要です。今すぐ再読み込みしますか?", + "エンジンを追加しました。反映には再読み込みが必要です。", ); } } @@ -450,10 +450,11 @@ const deleteEngine = async () => { throw new Error("default engine cannot be deleted"); } - const result = await store.actions.SHOW_CONFIRM_DIALOG({ - title: "エンジン削除の確認", - message: "選択中のエンジンを削除します。よろしいですか?", - actionName: "削除", + const result = await store.actions.SHOW_WARNING_DIALOG({ + title: "エンジンを削除しますか?", + message: "選択中のエンジンを削除します。", + actionName: "削除する", + isWarningColorButton: true, }); if (result === "OK") { switch (engineInfo.type) { @@ -468,7 +469,7 @@ const deleteEngine = async () => { }), ); void requireReload( - "エンジンを削除しました。反映には再読み込みが必要です。今すぐ再読み込みしますか?", + "エンジンを削除しました。反映には再読み込みが必要です。", ); break; } @@ -478,9 +479,7 @@ const deleteEngine = async () => { store.actions.UNINSTALL_VVPP_ENGINE(engineId), ); if (success) { - void requireReload( - "エンジンの削除には再読み込みが必要です。今すぐ再読み込みしますか?", - ); + void requireReload("エンジンの削除には再読み込みが必要です。"); } break; } @@ -509,11 +508,12 @@ const restartSelectedEngine = () => { }; const requireReload = async (message: string) => { - const result = await store.actions.SHOW_WARNING_DIALOG({ - title: "再読み込みが必要です", + const result = await store.actions.SHOW_CONFIRM_DIALOG({ + title: "再読み込みしますか?", message: message, - actionName: "再読み込み", + actionName: "再読み込みする", cancel: "後で", + isPrimaryColorButton: true, }); toInitialState(); if (result === "OK") { diff --git a/src/components/Dialog/HotkeySettingDialog.vue b/src/components/Dialog/HotkeySettingDialog.vue index 558dd3c476..d69d76da2d 100644 --- a/src/components/Dialog/HotkeySettingDialog.vue +++ b/src/components/Dialog/HotkeySettingDialog.vue @@ -242,10 +242,9 @@ const isDefaultCombination = (action: string) => { const resetHotkey = async (action: string) => { const result = await store.actions.SHOW_CONFIRM_DIALOG({ - title: "ショートカットキーをデフォルトに戻します", - message: `${action}のショートカットキーをデフォルトに戻します。\n本当に戻しますか?`, + title: "デフォルトに戻しますか?", + message: `${action}のショートカットキーをデフォルトに戻します。`, actionName: "デフォルトに戻す", - cancel: "デフォルトに戻さない", }); if (result !== "OK") return; diff --git a/src/components/Dialog/PresetManageDialog.vue b/src/components/Dialog/PresetManageDialog.vue index 7b7f693b58..7b93606357 100644 --- a/src/components/Dialog/PresetManageDialog.vue +++ b/src/components/Dialog/PresetManageDialog.vue @@ -103,10 +103,11 @@ const reorderPreset = (featurePresetList: (Preset & { key: PresetKey })[]) => { }; const deletePreset = async (key: PresetKey) => { - const result = await store.actions.SHOW_CONFIRM_DIALOG({ - title: "プリセット削除の確認", - message: `プリセット "${presetItems.value[key].name}" を削除してもよろしいですか?`, - actionName: "削除", + const result = await store.actions.SHOW_WARNING_DIALOG({ + title: "プリセットを削除しますか?", + message: `プリセット "${presetItems.value[key].name}" を削除します。`, + actionName: "削除する", + isWarningColorButton: true, }); if (result === "OK") { await store.actions.DELETE_PRESET({ diff --git a/src/components/Dialog/SettingDialog/SettingDialog.vue b/src/components/Dialog/SettingDialog/SettingDialog.vue index 3f3dfa452d..33cec7090a 100644 --- a/src/components/Dialog/SettingDialog/SettingDialog.vue +++ b/src/components/Dialog/SettingDialog/SettingDialog.vue @@ -767,11 +767,10 @@ const outputSamplingRate = computed({ set: async (outputSamplingRate: SamplingRateOption) => { if (outputSamplingRate !== "engineDefault") { const result = await store.actions.SHOW_CONFIRM_DIALOG({ - title: "出力サンプリングレートを変更します", + title: "出力サンプリングレートを変更しますか?", message: - "出力サンプリングレートを変更しても、音質は変化しません。また、音声の生成処理に若干時間がかかる場合があります。\n変更しますか?", + "出力サンプリングレートを変更しても、音質は変化しません。また、音声の生成処理に若干時間がかかる場合があります。", actionName: "変更する", - cancel: "変更しない", }); if (result !== "OK") { return; diff --git a/src/components/Dialog/TextDialog/MessageDialog.vue b/src/components/Dialog/TextDialog/MessageDialog.vue index bd4d6a8bcb..eeca8e6f14 100644 --- a/src/components/Dialog/TextDialog/MessageDialog.vue +++ b/src/components/Dialog/TextDialog/MessageDialog.vue @@ -13,20 +13,26 @@ -
{{ props.title }}
+
{{ props.title }}
- + + + {{ props.message }} + + + -
{{ props.title }}
+
{{ props.title }}
- + + + {{ props.message }} + + + @@ -52,7 +59,7 @@ const props = withDefaults( type: DialogType; title: string; message: string; - buttons: string[]; + buttons: (string | { text: string; color: string })[]; persistent?: boolean | undefined; default?: number | undefined; }>(), @@ -67,6 +74,12 @@ defineEmits({ const iconName = computed(() => getIcon(props.type)); const color = computed(() => getColor(props.type)); +const buttonObjects = computed(() => + props.buttons.map((button) => + typeof button === "string" ? { text: button, color: "display" } : button, + ), +); + const { dialogRef, onDialogOK, onDialogHide } = useDialogPluginComponent(); const buttonsRef = useTemplateRef("buttons"); @@ -86,6 +99,7 @@ const onClick = (index: number) => { onDialogOK({ index }); }; + diff --git a/src/components/Dialog/TextDialog/common.ts b/src/components/Dialog/TextDialog/common.ts index a995cf2dcf..f83e7ea6b2 100644 --- a/src/components/Dialog/TextDialog/common.ts +++ b/src/components/Dialog/TextDialog/common.ts @@ -1,18 +1,17 @@ import { ExhaustiveError } from "@/type/utility"; -export type DialogType = "none" | "info" | "error" | "question" | "warning"; +export type DialogType = "info" | "error" | "question" | "warning"; + export const getIcon = (dialogType: DialogType) => { switch (dialogType) { - case "info": - return "info"; case "error": return "error"; case "question": return "help"; case "warning": return "warning"; - case "none": - return ""; + case "info": + throw new Error("infoはアイコンなし"); default: throw new ExhaustiveError(dialogType); } @@ -21,12 +20,11 @@ export const getIcon = (dialogType: DialogType) => { export const getColor = (dialogType: DialogType) => { switch (dialogType) { case "error": - case "warning": - // TODO:warning用の色を用意する return "warning"; + case "warning": + return "yellow-9"; // TODO: warning用の色をちゃんと用意する case "question": case "info": - case "none": return "display"; default: throw new ExhaustiveError(dialogType); diff --git a/src/components/Dialog/ToolBarCustomDialog.vue b/src/components/Dialog/ToolBarCustomDialog.vue index f0bedec67e..40f3a5fbca 100644 --- a/src/components/Dialog/ToolBarCustomDialog.vue +++ b/src/components/Dialog/ToolBarCustomDialog.vue @@ -209,10 +209,9 @@ watch( const applyDefaultSetting = async () => { const result = await store.actions.SHOW_CONFIRM_DIALOG({ - title: "ツールバーをデフォルトに戻します", - message: "ツールバーをデフォルトに戻します。\nよろしいですか?", - actionName: "はい", - cancel: "いいえ", + title: "デフォルトに戻しますか?", + message: "ツールバーをデフォルトに戻します。", + actionName: "デフォルトに戻す", }); if (result === "OK") { toolbarButtons.value = [...defaultSetting]; @@ -231,7 +230,7 @@ const finishOrNotDialog = async () => { title: "カスタマイズを終了しますか?", message: "保存せずに終了すると、カスタマイズは破棄されてリセットされます。", - actionName: "終了", + actionName: "終了する", }); if (result === "OK") { toolbarButtons.value = [...store.state.toolbarSetting]; diff --git a/src/store/audioPlayer.ts b/src/store/audioPlayer.ts index cc0e5bbed7..2ce64210b9 100644 --- a/src/store/audioPlayer.ts +++ b/src/store/audioPlayer.ts @@ -77,7 +77,6 @@ export const audioPlayerStore = createPartialStore({ }; audioElement.addEventListener("canplay", stop); void showAlertDialog({ - type: "error", title: "エラー", message: "再生デバイスが見つかりません", }); diff --git a/src/store/project.ts b/src/store/project.ts index c119ff6c85..ebeb21d0fd 100755 --- a/src/store/project.ts +++ b/src/store/project.ts @@ -24,6 +24,7 @@ import { EditorType } from "@/type/preload"; import { IsEqual } from "@/type/utility"; import { showAlertDialog, + showMessageDialog, showQuestionDialog, } from "@/components/Dialog/Dialog"; import { uuid4 } from "@/helpers/random"; @@ -226,7 +227,6 @@ export const projectStore = createPartialStore({ return err.message; })(); await showAlertDialog({ - type: "error", title: "エラー", message: `プロジェクトファイルの読み込みに失敗しました。\n${message}`, }); @@ -270,7 +270,7 @@ export const projectStore = createPartialStore({ context.state.projectFilePath && context.state.projectFilePath != filePath ) { - await showAlertDialog({ + await showMessageDialog({ type: "info", title: "保存", message: `編集中のプロジェクトが ${filePath} に切り替わりました。`, @@ -327,7 +327,6 @@ export const projectStore = createPartialStore({ return err.message; })(); await showAlertDialog({ - type: "error", title: "エラー", message: `プロジェクトファイルの保存に失敗しました。\n${message}`, }); @@ -348,13 +347,16 @@ export const projectStore = createPartialStore({ if (additionalMessage) { message += "\n" + additionalMessage; } - message += "\n変更を保存しますか?"; const result: number = await showQuestionDialog({ - type: "info", - title: "警告", + type: "warning", + title: "プロジェクトを保存しますか?", message, - buttons: ["キャンセル", "破棄", "保存"], + buttons: [ + "キャンセル", + { text: "破棄する", color: "warning" }, + { text: "保存する", color: "primary" }, + ], cancel: 0, }); if (result == 2) { diff --git a/src/store/setting.ts b/src/store/setting.ts index ba9c53548d..cb6a03ce7d 100644 --- a/src/store/setting.ts +++ b/src/store/setting.ts @@ -386,7 +386,6 @@ export const settingStore = createPartialStore({ // FIXME: useGpu設定を保存してからエンジン起動を試すのではなく、逆にしたい if (!result.success && useGpu) { await showAlertDialog({ - type: "error", title: "GPUモードに変更できませんでした", message: "GPUモードでエンジンを起動できなかったためCPUモードに戻します", diff --git a/src/store/singing.ts b/src/store/singing.ts index ae38355aaf..05e071e2e4 100644 --- a/src/store/singing.ts +++ b/src/store/singing.ts @@ -1722,7 +1722,6 @@ export const singingStore = createPartialStore({ const sinkId = device === "default" ? "" : device; audioContext.setSinkId(sinkId).catch((err: unknown) => { void showAlertDialog({ - type: "error", title: "エラー", message: "再生デバイスが見つかりません", }); diff --git a/src/store/type.ts b/src/store/type.ts index 5f0847e14d..002b801793 100644 --- a/src/store/type.ts +++ b/src/store/type.ts @@ -60,7 +60,7 @@ import { TextDialogResult, NotifyAndNotShowAgainButtonOption, LoadingScreenOption, - AlertDialogOptions, + MessageDialogOptions, ConfirmDialogOptions, WarningDialogOptions, } from "@/components/Dialog/Dialog"; @@ -2031,7 +2031,7 @@ export type UiStoreTypes = { }; SHOW_ALERT_DIALOG: { - action(payload: AlertDialogOptions): TextDialogResult; + action(payload: MessageDialogOptions): TextDialogResult; }; SHOW_CONFIRM_DIALOG: { diff --git a/src/store/ui.ts b/src/store/ui.ts index 93a4c5383b..3b03b53b21 100644 --- a/src/store/ui.ts +++ b/src/store/ui.ts @@ -14,7 +14,7 @@ import { import { createPartialStore } from "./vuex"; import { ActivePointScrollMode } from "@/type/preload"; import { - AlertDialogOptions, + MessageDialogOptions, ConfirmDialogOptions, WarningDialogOptions, LoadingScreenOption, @@ -203,7 +203,7 @@ export const uiStore = createPartialStore({ }, SHOW_ALERT_DIALOG: { - action: createUILockAction(async (_, payload: AlertDialogOptions) => { + action: createUILockAction(async (_, payload: MessageDialogOptions) => { return await showAlertDialog(payload); }), }, diff --git "a/tests/e2e/browser/\343\203\204\343\203\274\343\203\253\343\203\220\343\203\274\343\202\253\343\202\271\343\202\277\343\203\236\343\202\244\343\202\272\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" "b/tests/e2e/browser/\343\203\204\343\203\274\343\203\253\343\203\220\343\203\274\343\202\253\343\202\271\343\202\277\343\203\236\343\202\244\343\202\272\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" index 0a9bffd775..ec6ccef32a 100644 --- "a/tests/e2e/browser/\343\203\204\343\203\274\343\203\253\343\203\220\343\203\274\343\202\253\343\202\271\343\202\277\343\203\236\343\202\244\343\202\272\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" +++ "b/tests/e2e/browser/\343\203\204\343\203\274\343\203\253\343\203\220\343\203\274\343\202\253\343\202\271\343\202\277\343\203\236\343\202\244\343\202\272\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" @@ -62,7 +62,7 @@ test("ツールバーのカスタマイズでボタンを追加でき、デフ .count(), ).toBe(1); await page.getByText("デフォルトに戻す").click(); - await page.locator(".q-card").getByText("はい").click(); + await page.locator(".q-card").getByText("デフォルトに戻す").click(); await page.getByText("保存", { exact: true }).click(); expect( await page diff --git "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-dark-storybook-win32.png" "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-dark-storybook-win32.png" index 74f55fe1c3..2decf9d002 100644 Binary files "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-dark-storybook-win32.png" and "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-dark-storybook-win32.png" differ diff --git "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-light-storybook-win32.png" "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-light-storybook-win32.png" index 6146a13dac..72b25c70ae 100644 Binary files "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-light-storybook-win32.png" and "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-light-storybook-win32.png" differ diff --git "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-multiline-dark-storybook-win32.png" "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-multiline-dark-storybook-win32.png" index e646a172b9..46764f3653 100644 Binary files "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-multiline-dark-storybook-win32.png" and "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-multiline-dark-storybook-win32.png" differ diff --git "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-multiline-light-storybook-win32.png" "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-multiline-light-storybook-win32.png" index 6f7c7d1cad..d74da8b3bb 100644 Binary files "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-multiline-light-storybook-win32.png" and "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-messagedialog--opened-multiline-light-storybook-win32.png" differ diff --git "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-button-color-dark-storybook-win32.png" "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-button-color-dark-storybook-win32.png" new file mode 100644 index 0000000000..c019c761c5 Binary files /dev/null and "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-button-color-dark-storybook-win32.png" differ diff --git "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-button-color-light-storybook-win32.png" "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-button-color-light-storybook-win32.png" new file mode 100644 index 0000000000..301d31a46c Binary files /dev/null and "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-button-color-light-storybook-win32.png" differ diff --git "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-dark-storybook-win32.png" "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-dark-storybook-win32.png" index d83270aaee..3231bd996a 100644 Binary files "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-dark-storybook-win32.png" and "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-dark-storybook-win32.png" differ diff --git "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-light-storybook-win32.png" "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-light-storybook-win32.png" index b8beef9a97..450d0e03a3 100644 Binary files "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-light-storybook-win32.png" and "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-light-storybook-win32.png" differ diff --git "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-multiline-dark-storybook-win32.png" "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-multiline-dark-storybook-win32.png" index bf8b55bc2e..3787836561 100644 Binary files "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-multiline-dark-storybook-win32.png" and "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-multiline-dark-storybook-win32.png" differ diff --git "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-multiline-light-storybook-win32.png" "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-multiline-light-storybook-win32.png" index 39d5c7917e..56ba595ce4 100644 Binary files "a/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-multiline-light-storybook-win32.png" and "b/tests/e2e/storybook/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.mts-snapshots/components-dialog-textdialog-questiondialog--opened-multiline-light-storybook-win32.png" differ