diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9cceb6e432..436a1fafc8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -42,6 +42,8 @@
- Enhance: トルコ語 (tr-TR) に対応
- Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました
- Enhance: 画像エフェクトのパラメータ名の多言語対応
+- Enhance: 投稿フォームの絵文字ピッカーに独立したウィンドウを使用できるように
+ - リアクションピッカーと絵文字ピッカーで表示スタイルの設定が分離しました。絵文字ピッカーでのみウィンドウスタイルを使用可能です。
- Enhance: 依存ソフトウェアの更新
- Enhance: ノートを非表示にする相対期間を1ヶ月単位で自由に指定できるように
- Enhance: メールアドレス確認画面のUIを改善
diff --git a/locales/index.d.ts b/locales/index.d.ts
index 37350a7b04..5840097b3f 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;
/**
* リアクション時にピン留め表示する絵文字を設定できます
*/
@@ -3194,10 +3202,6 @@ export interface Locale extends ILocale {
* 設定はページリロード後に反映されます。
*/
"reloadToApplySetting": string;
- /**
- * 反映には再起動が必要です。
- */
- "needReloadToApply": string;
/**
* 反映にはサーバーの再起動が必要です。
*/
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index fd64fa23c8..a5b8605ae6 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: "ピッカーの表示"
@@ -794,7 +796,6 @@ center: "中央"
wide: "広い"
narrow: "狭い"
reloadToApplySetting: "設定はページリロード後に反映されます。"
-needReloadToApply: "反映には再起動が必要です。"
needToRestartServerToApply: "反映にはサーバーの再起動が必要です。"
showTitlebar: "タイトルバーを表示する"
clearCache: "キャッシュをクリア"
diff --git a/packages/frontend/src/components/MkEmojiPickerDialog.vue b/packages/frontend/src/components/MkEmojiPickerDialog.vue
index 1627dc8760..82b438fedd 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 56683b8f8c..65674f2451 100644
--- a/packages/frontend/src/components/MkPostForm.vue
+++ b/packages/frontend/src/components/MkPostForm.vue
@@ -105,14 +105,14 @@ SPDX-License-Identifier: AGPL-3.0-only