Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,17 @@ version with its date and start a fresh empty `[Unreleased]` above it.
release; click it to open Qoderian's plugin page, where Obsidian's update
button lives.

### Changed

- The resize grip above the message input stays hidden until the pointer is
inside the input area or the composer has focus, so the input's top edge
reads as a plain border while you are reading or scrolling.

### Removed

- The hover tooltip on the message input's resize grip; the resize cursor and
the accent highlight while dragging already signal what the grip does.

## [1.0.11] - 2026-09-16

### Added
Expand Down
3 changes: 0 additions & 3 deletions src/features/chat/chat-view.ts
Original file line number Diff line number Diff line change
Expand Up @@ -417,9 +417,6 @@ export class QoderianView extends ItemView {
);
}
this.creditsUsageButton?.refreshLocale();
for (const tab of this.tabManager?.getAllTabs() ?? []) {
tab.ui.composerResize?.refreshLocale();
}
this.updateTabBar();
}

Expand Down
10 changes: 0 additions & 10 deletions src/features/chat/ui/composer-resize.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
import { t } from '../../../i18n/i18n';
import { setButtonTooltip } from '../../../shared/dom/tooltip';

export const COMPOSER_MIN_HEIGHT = 140;
export const COMPOSER_MAX_HEIGHT_PERCENT = 0.75;
export const COMPOSER_KEYBOARD_RESIZE_STEP = 24;

export interface ComposerResizeController {
destroy(): void;
refreshLocale(): void;
reset(): void;
}

Expand Down Expand Up @@ -113,15 +109,10 @@ export function attachComposerResize(
applyHeight(currentHeight() + delta);
};

const refreshLocale = (): void => {
setButtonTooltip(handleEl, t('composer.resize'));
};

handleEl.setAttribute('role', 'separator');
handleEl.setAttribute('aria-orientation', 'horizontal');
handleEl.setAttribute('tabindex', '0');
updateAriaBounds(currentHeight());
refreshLocale();
handleEl.addEventListener('pointerdown', handlePointerDown);
handleEl.addEventListener('dblclick', reset);
handleEl.addEventListener('keydown', handleKeydown);
Expand All @@ -148,7 +139,6 @@ export function attachComposerResize(
handleEl.removeEventListener('keydown', handleKeydown);
viewWindow?.removeEventListener('blur', stopDragging);
},
refreshLocale,
reset,
};
}
3 changes: 1 addition & 2 deletions src/i18n/locales/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
},
"composer": {
"send": "Nachricht senden",
"stop": "Generierung stoppen",
"resize": "Ziehen, um die Eingabehöhe anzupassen; doppelklicken zum Zurücksetzen"
"stop": "Generierung stoppen"
},
"restore": {
"failed": "Einige Tabs oder Unterhaltungen konnten nicht wiederhergestellt werden ({count} Problem(e)). Details in der Entwicklerkonsole."
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
},
"composer": {
"send": "Send message",
"stop": "Stop generation",
"resize": "Drag to resize the message input; double-click to reset"
"stop": "Stop generation"
},
"restore": {
"failed": "Some of your previous tabs or conversations could not be restored ({count} issue(s)). Details are in the developer console."
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
},
"composer": {
"send": "Enviar mensaje",
"stop": "Detener generación",
"resize": "Arrastra para ajustar la altura del campo; haz doble clic para restablecer"
"stop": "Detener generación"
},
"restore": {
"failed": "No se pudieron restaurar algunas pestañas o conversaciones ({count} problema(s)). Detalles en la consola de desarrollador."
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
},
"composer": {
"send": "Envoyer le message",
"stop": "Arrêter la génération",
"resize": "Faites glisser pour redimensionner la saisie ; double-cliquez pour réinitialiser"
"stop": "Arrêter la génération"
},
"restore": {
"failed": "Certains onglets ou conversations n'ont pas pu être restaurés ({count} problème(s)). Détails dans la console développeur."
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
},
"composer": {
"send": "メッセージを送信",
"stop": "生成を停止",
"resize": "ドラッグして入力欄の高さを調整。ダブルクリックで自動サイズに戻す"
"stop": "生成を停止"
},
"restore": {
"failed": "一部のタブまたは会話を復元できませんでした({count} 件の問題)。詳細は開発者コンソールを確認してください。"
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
},
"composer": {
"send": "메시지 보내기",
"stop": "생성 중지",
"resize": "드래그하여 입력 높이 조절; 두 번 클릭하여 자동 높이로 재설정"
"stop": "생성 중지"
},
"restore": {
"failed": "이전 탭 또는 대화를 완전히 복원하지 못했습니다(문제 {count}건). 자세한 내용은 개발자 콘솔을 확인하세요."
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
},
"composer": {
"send": "Enviar mensagem",
"stop": "Parar geração",
"resize": "Arraste para ajustar a altura da entrada; clique duas vezes para redefinir"
"stop": "Parar geração"
},
"restore": {
"failed": "Algumas abas ou conversas não puderam ser restauradas ({count} problema(s)). Detalhes no console do desenvolvedor."
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
},
"composer": {
"send": "Отправить сообщение",
"stop": "Остановить генерацию",
"resize": "Перетащите, чтобы изменить высоту поля; двойной щелчок — сброс"
"stop": "Остановить генерацию"
},
"restore": {
"failed": "Не удалось восстановить часть вкладок или бесед (проблем: {count}). Подробности — в консоли разработчика."
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
},
"composer": {
"send": "发送消息",
"stop": "停止生成",
"resize": "拖动调整输入框高度;双击恢复自动高度"
"stop": "停止生成"
},
"restore": {
"failed": "部分标签或会话未能恢复({count} 个问题)。详情已输出到开发者控制台。"
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/zh-TW.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
},
"composer": {
"send": "傳送訊息",
"stop": "停止生成",
"resize": "拖曳調整輸入框高度;按兩下恢復自動高度"
"stop": "停止生成"
},
"restore": {
"failed": "部分分頁或工作階段未能恢復({count} 個問題)。詳情已輸出到開發者主控台。"
Expand Down
1 change: 0 additions & 1 deletion src/i18n/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ export type TranslationKey =
// Composer - send/stop action button
| 'composer.send'
| 'composer.stop'
| 'composer.resize'
| 'restore.failed'

// Chat - Rewind
Expand Down
10 changes: 9 additions & 1 deletion src/style/components/input.css
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,16 @@
border-radius: 999px;
background: var(--background-primary);
transform: translateX(-50%);
opacity: 0;
transition: opacity 0.12s ease, border-color 0.12s ease, background 0.12s ease;
}

/* The grip stays out of the way until the pointer is inside the composer or it has focus. */
.qoderian-input-wrapper:hover .qoderian-composer-resize-handle::after,
.qoderian-input-wrapper:focus-within .qoderian-composer-resize-handle::after,
.qoderian-composer-resize-handle:focus-visible::after,
.qoderian-composer-resizing .qoderian-composer-resize-handle::after {
opacity: 1;
transition: border-color 0.12s ease, background 0.12s ease;
}

.qoderian-composer-resize-handle:hover::after,
Expand Down
1 change: 0 additions & 1 deletion tests/unit/i18n/locales.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ const localizedKeys = [
'chat.permissionMode.plan.desc',
'chat.permissionMode.changeFailed',
'chat.slashCommand.requiresInteractiveTerminal',
'composer.resize',
'commands.submitFeedback',
'feedback.title',
'feedback.placeholder',
Expand Down
Loading