diff --git a/CHANGELOG.md b/CHANGELOG.md
index a1fb4fe48c..419eabe780 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -42,6 +42,8 @@
- Enhance: テーマでページヘッダーの色を変更できるように
- Enhance: スワイプでのタブ切り替えを強化
- Enhance: デザインのブラッシュアップ
+- Enhance: 投稿フォームの絵文字ピッカーに独立したウィンドウを使用できるように
+ - リアクションピッカーと絵文字ピッカーで表示スタイルの設定が分離しました。絵文字ピッカーでのみウィンドウスタイルを使用可能です。
- Fix: ログアウトした際に処理が終了しない問題を修正
- Fix: 自動バックアップが設定されている環境でログアウト直前に設定をバックアップするように
- Fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題を修正 #15836
diff --git a/locales/index.d.ts b/locales/index.d.ts
index 0ac96939aa..b905c82a42 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -130,6 +130,10 @@ export interface Locale extends ILocale {
* ウィンドウで開く
*/
"openInWindow": string;
+ /**
+ * ウィンドウ
+ */
+ "window": string;
/**
* プロフィール
*/
@@ -542,6 +546,10 @@ export interface Locale extends ILocale {
* 絵文字ピッカー
*/
"emojiPicker": string;
+ /**
+ * リアクションピッカー
+ */
+ "reactionPicker": string;
/**
* リアクション時にピン留め表示する絵文字を設定できます
*/
@@ -3186,10 +3194,6 @@ export interface Locale extends ILocale {
* 設定はページリロード後に反映されます。
*/
"reloadToApplySetting": string;
- /**
- * 反映には再起動が必要です。
- */
- "needReloadToApply": string;
/**
* タイトルバーを表示する
*/
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index c189685464..f2f23ebbc5 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -28,6 +28,7 @@ notificationSettings: "通知の設定"
basicSettings: "基本設定"
otherSettings: "その他の設定"
openInWindow: "ウィンドウで開く"
+window: "ウィンドウ"
profile: "プロフィール"
timeline: "タイムライン"
noAccountDescription: "自己紹介はありません"
@@ -131,6 +132,7 @@ add: "追加"
reaction: "リアクション"
reactions: "リアクション"
emojiPicker: "絵文字ピッカー"
+reactionPicker: "リアクションピッカー"
pinnedEmojisForReactionSettingDescription: "リアクション時にピン留め表示する絵文字を設定できます"
pinnedEmojisSettingDescription: "絵文字入力時にピン留め表示する絵文字を設定できます"
emojiPickerDisplay: "ピッカーの表示"
@@ -792,7 +794,6 @@ center: "中央"
wide: "広い"
narrow: "狭い"
reloadToApplySetting: "設定はページリロード後に反映されます。"
-needReloadToApply: "反映には再起動が必要です。"
showTitlebar: "タイトルバーを表示する"
clearCache: "キャッシュをクリア"
onlineUsersCount: "{n}人がオンライン"
diff --git a/packages/frontend/src/components/MkEmojiPickerDialog.vue b/packages/frontend/src/components/MkEmojiPickerDialog.vue
index 662e2a118d..2b79ae8e15 100644
--- a/packages/frontend/src/components/MkEmojiPickerDialog.vue
+++ b/packages/frontend/src/components/MkEmojiPickerDialog.vue
@@ -8,7 +8,7 @@ SPDX-License-Identifier: AGPL-3.0-only
ref="modal"
v-slot="{ type, maxHeight }"
:zPriority="'middle'"
- :preferType="prefer.s.emojiPickerStyle"
+ :preferType="asReactionPicker ? prefer.s.reactionPickerStyle : prefer.s.emojiPickerStyle === 'window' ? 'auto' : prefer.s.emojiPickerStyle"
:hasInteractionWithOtherFocusTrappedEls="true"
:transparentBg="true"
:manualShowing="manualShowing"
diff --git a/packages/frontend/src/components/MkEmojiPickerWindow.stories.impl.ts b/packages/frontend/src/components/MkEmojiPickerWindow.stories.impl.ts
new file mode 100644
index 0000000000..67dd0f8d6f
--- /dev/null
+++ b/packages/frontend/src/components/MkEmojiPickerWindow.stories.impl.ts
@@ -0,0 +1,7 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import MkEmojiPickerWindow from './MkEmojiPickerWindow.vue';
+void MkEmojiPickerWindow;
diff --git a/packages/frontend/src/components/MkEmojiPickerWindow.vue b/packages/frontend/src/components/MkEmojiPickerWindow.vue
new file mode 100644
index 0000000000..c66e4fd6c0
--- /dev/null
+++ b/packages/frontend/src/components/MkEmojiPickerWindow.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue
index c4857b7f65..1b96dec7e2 100644
--- a/packages/frontend/src/components/MkPostForm.vue
+++ b/packages/frontend/src/components/MkPostForm.vue
@@ -99,13 +99,13 @@ SPDX-License-Identifier: AGPL-3.0-only