Modify when "Add reasoning" button shows up

2d335e27ff6186fc7311b78e8b29fbcdb20c9ed9

Wolfsblvt <wolfsblvt@gmail.com>

2 files changed, +36 -5Ignore whitespace
public/script.js+25 -0
@@ -2257,6 +2257,9 @@ function getMessageFromTemplate({
2257 timerValue && mes.find('.mes_timer').attr('title', timerTitle).text(timerValue);2257 timerValue && mes.find('.mes_timer').attr('title', timerTitle).text(timerValue);
2258 bookmarkLink && updateBookmarkDisplay(mes);2258 bookmarkLink && updateBookmarkDisplay(mes);
22592259
2260 if (reasoning) {
2261 mes.addClass('reasoning');
2262 }
2260 if (reasoningDuration) {2263 if (reasoningDuration) {
2261 updateReasoningTimeUI(mes.find('.mes_reasoning_header_title')[0], reasoningDuration, { forceEnd: true });2264 updateReasoningTimeUI(mes.find('.mes_reasoning_header_title')[0], reasoningDuration, { forceEnd: true });
2262 }2265 }
@@ -2278,6 +2281,7 @@ export function updateMessageBlock(messageId, message) {
2278 const text = message?.extra?.display_text ?? message.mes;2281 const text = message?.extra?.display_text ?? message.mes;
2279 messageElement.find('.mes_text').html(messageFormatting(text, message.name, message.is_system, message.is_user, messageId, {}, false));2282 messageElement.find('.mes_text').html(messageFormatting(text, message.name, message.is_system, message.is_user, messageId, {}, false));
2280 messageElement.find('.mes_reasoning').html(messageFormatting(message.extra?.reasoning ?? '', '', false, false, messageId, {}, true));2283 messageElement.find('.mes_reasoning').html(messageFormatting(message.extra?.reasoning ?? '', '', false, false, messageId, {}, true));
2284 messageElement.toggleClass('reasoning', !!message.extra?.reasoning);
2281 addCopyToCodeBlocks(messageElement);2285 addCopyToCodeBlocks(messageElement);
2282 appendMediaToMessage(message, messageElement);2286 appendMediaToMessage(message, messageElement);
2283}2287}
@@ -3262,6 +3266,9 @@ class StreamingProcessor {
3262 if (this.messageReasoningDom instanceof HTMLElement) {3266 if (this.messageReasoningDom instanceof HTMLElement) {
3263 const formattedReasoning = messageFormatting(this.reasoning, '', false, false, messageId, {}, true);3267 const formattedReasoning = messageFormatting(this.reasoning, '', false, false, messageId, {}, true);
3264 this.messageReasoningDom.innerHTML = formattedReasoning;3268 this.messageReasoningDom.innerHTML = formattedReasoning;
3269 if (this.reasoning) {
3270 this.messageDom.classList.add('reasoning');
3271 }
3265 }3272 }
3266 }3273 }
32673274
@@ -10862,6 +10869,18 @@ jQuery(async function () {
10862 }10869 }
10863 });10870 });
1086410871
10872 $(document).on('click', '.mes_reasoning_header', function () {
10873 // If we are in message edit mode and reasoning area is closed, a click opens and edits it
10874 const mes = $(this).closest('.mes');
10875 const mesEditArea = mes.find('#curEditTextarea');
10876 if (mesEditArea.length) {
10877 const summary = $(mes).find('.mes_reasoning_summary');
10878 if (!summary.attr('open')) {
10879 summary.find('.mes_reasoning_edit').trigger('click');
10880 }
10881 }
10882 });
10883
10865 $(document).on('input', '#curEditTextarea', function () {10884 $(document).on('input', '#curEditTextarea', function () {
10866 if (power_user.auto_save_msg_edits === true) {10885 if (power_user.auto_save_msg_edits === true) {
10867 messageEditAuto($(this));10886 messageEditAuto($(this));
@@ -11421,6 +11440,12 @@ jQuery(async function () {
11421 $(this).closest('.mes').find('.mes_reasoning_edit_cancel:visible').trigger('click');11440 $(this).closest('.mes').find('.mes_reasoning_edit_cancel:visible').trigger('click');
11422 });11441 });
1142311442
11443 $(document).on('click', '.mes_reasoning_details', function (e) {
11444 if (!e.target.closest('.mes_reasoning_actions') && !e.target.closest('.mes_reasoning_header')) {
11445 e.preventDefault();
11446 }
11447 });
11448
11424 $(document).keyup(function (e) {11449 $(document).keyup(function (e) {
11425 if (e.key === 'Escape') {11450 if (e.key === 'Escape') {
11426 const isEditVisible = $('#curEditTextarea').is(':visible') || $('.reasoning_edit_textarea').length > 0;11451 const isEditVisible = $('#curEditTextarea').is(':visible') || $('.reasoning_edit_textarea').length > 0;
public/style.css+11 -5
@@ -1129,14 +1129,10 @@ body .panelControlBar {
1129 /*only affects bubblechat to make it sit nicely at the bottom*/1129 /*only affects bubblechat to make it sit nicely at the bottom*/
1130}1130}
11311131
1132.last_mes:has(.mes_text:empty):has(.mes_reasoning_details[open]) .mes_reasoning:not(:empty) {1132.last_mes:has(.mes_text:empty):has(.mes_reasoning_details) .mes_reasoning:not(:empty) {
1133 margin-bottom: var(--mes-right-spacing);1133 margin-bottom: var(--mes-right-spacing);
1134}1134}
11351135
1136.last_mes .mes_text {
1137 padding-right: var(--mes-right-spacing);
1138}
1139
1140/* SWIPE RELATED STYLES*/1136/* SWIPE RELATED STYLES*/
11411137
1142.mes {1138.mes {
@@ -1358,6 +1354,7 @@ body.swipeAllMessages .mes:not(.last_mes) .swipes-counter {
1358 padding-left: 0;1354 padding-left: 0;
1359 padding-top: 5px;1355 padding-top: 5px;
1360 padding-bottom: 5px;1356 padding-bottom: 5px;
1357 padding-right: var(--mes-right-spacing);
1361}1358}
13621359
1363br {1360br {
@@ -4252,6 +4249,11 @@ input[type="range"]::-webkit-slider-thumb {
4252 transition: 0.3s ease-in-out;4249 transition: 0.3s ease-in-out;
4253}4250}
42544251
4252.mes_reasoning_actions {
4253 margin: 0;
4254 margin-top: 0.5rem;
4255}
4256
4255.mes_edit_buttons .menu_button,4257.mes_edit_buttons .menu_button,
4256.mes_reasoning_actions .edit_button {4258.mes_reasoning_actions .edit_button {
4257 opacity: 0.5;4259 opacity: 0.5;
@@ -4298,6 +4300,10 @@ input[type="range"]::-webkit-slider-thumb {
4298 field-sizing: content;4300 field-sizing: content;
4299}4301}
43004302
4303.mes.reasoning .mes_edit_add_reasoning {
4304 display: none;
4305}
4306
4301#anchor_order {4307#anchor_order {
4302 margin-bottom: 15px;4308 margin-bottom: 15px;
4303}4309}