Modify when "Add reasoning" button shows up

2d335e27ff6186fc7311b78e8b29fbcdb20c9ed9

Wolfsblvt <wolfsblvt@gmail.com>

2 files changed, +36 -5Showing whitespace changes
public/script.js+25 -0
@@ -2257,6 +2257,9 @@ function getMessageFromTemplate({
22572257 timerValue && mes.find('.mes_timer').attr('title', timerTitle).text(timerValue);
22582258 bookmarkLink && updateBookmarkDisplay(mes);
22592259
2260+ if (reasoning) {
2261+ mes.addClass('reasoning');
2262+ }
22602263 if (reasoningDuration) {
22612264 updateReasoningTimeUI(mes.find('.mes_reasoning_header_title')[0], reasoningDuration, { forceEnd: true });
22622265 }
@@ -2278,6 +2281,7 @@ export function updateMessageBlock(messageId, message) {
22782281 const text = message?.extra?.display_text ?? message.mes;
22792282 messageElement.find('.mes_text').html(messageFormatting(text, message.name, message.is_system, message.is_user, messageId, {}, false));
22802283 messageElement.find('.mes_reasoning').html(messageFormatting(message.extra?.reasoning ?? '', '', false, false, messageId, {}, true));
2284+ messageElement.toggleClass('reasoning', !!message.extra?.reasoning);
22812285 addCopyToCodeBlocks(messageElement);
22822286 appendMediaToMessage(message, messageElement);
22832287}
@@ -3262,6 +3266,9 @@ class StreamingProcessor {
32623266 if (this.messageReasoningDom instanceof HTMLElement) {
32633267 const formattedReasoning = messageFormatting(this.reasoning, '', false, false, messageId, {}, true);
32643268 this.messageReasoningDom.innerHTML = formattedReasoning;
3269+ if (this.reasoning) {
3270+ this.messageDom.classList.add('reasoning');
3271+ }
32653272 }
32663273 }
32673274
@@ -10862,6 +10869,18 @@ jQuery(async function () {
1086210869 }
1086310870 });
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+
1086510884 $(document).on('input', '#curEditTextarea', function () {
1086610885 if (power_user.auto_save_msg_edits === true) {
1086710886 messageEditAuto($(this));
@@ -11421,6 +11440,12 @@ jQuery(async function () {
1142111440 $(this).closest('.mes').find('.mes_reasoning_edit_cancel:visible').trigger('click');
1142211441 });
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+
1142411449 $(document).keyup(function (e) {
1142511450 if (e.key === 'Escape') {
1142611451 const isEditVisible = $('#curEditTextarea').is(':visible') || $('.reasoning_edit_textarea').length > 0;
public/style.css+11 -5
@@ -1129,14 +1129,10 @@ body .panelControlBar {
11291129 /*only affects bubblechat to make it sit nicely at the bottom*/
11301130}
11311131
11321132.last_mes:has(.mes_text:empty):has(.mes_reasoning_details[open]) .mes_reasoning:not(:empty) {
11331133 margin-bottom: var(--mes-right-spacing);
11341134}
11351135
1136-.last_mes .mes_text {
1137- padding-right: var(--mes-right-spacing);
1138-}
1139-
11401136/* SWIPE RELATED STYLES*/
11411137
11421138.mes {
@@ -1358,6 +1354,7 @@ body.swipeAllMessages .mes:not(.last_mes) .swipes-counter {
13581354 padding-left: 0;
13591355 padding-top: 5px;
13601356 padding-bottom: 5px;
1357+ padding-right: var(--mes-right-spacing);
13611358}
13621359
13631360br {
@@ -4252,6 +4249,11 @@ input[type="range"]::-webkit-slider-thumb {
42524249 transition: 0.3s ease-in-out;
42534250}
42544251
4252+.mes_reasoning_actions {
4253+ margin: 0;
4254+ margin-top: 0.5rem;
4255+}
4256+
42554257.mes_edit_buttons .menu_button,
42564258.mes_reasoning_actions .edit_button {
42574259 opacity: 0.5;
@@ -4298,6 +4300,10 @@ input[type="range"]::-webkit-slider-thumb {
42984300 field-sizing: content;
42994301}
43004302
4303+.mes.reasoning .mes_edit_add_reasoning {
4304+ display: none;
4305+}
4306+
43014307#anchor_order {
43024308 margin-bottom: 15px;
43034309}