- fix charPanel div heights - fix noHotswap area height & flex dir
| @@ -332,6 +332,10 @@ | |||
| 332 | overflow: hidden; | 332 | overflow: hidden; |
| 333 | } | 333 | } |
| 334 | 334 | ||
| 335 | .overflowYScroll { | ||
| 336 | overflow-y: scroll; | ||
| 337 | } | ||
| 338 | |||
| 335 | .padding0 { | 339 | .padding0 { |
| 336 | padding: 0; | 340 | padding: 0; |
| 337 | } | 341 | } |
| @@ -614,4 +618,4 @@ ul.li-padding-bot10 li { | |||
| 614 | 618 | ||
| 615 | .wordBreakAll { | 619 | .wordBreakAll { |
| 616 | word-break: break-all; | 620 | word-break: break-all; |
| 617 | } | 621 | } |
| \ No newline at end of file | 621 | \ No newline at end of file | |
| @@ -19,6 +19,7 @@ body:not(.tts) #ttsExtensionNarrateAll { | |||
| 19 | } | 19 | } |
| 20 | 20 | ||
| 21 | body.no-hotswap .hotswap, | 21 | body.no-hotswap .hotswap, |
| 22 | body.no-hotswap .hotswap~hr, | ||
| 22 | body.no-timer .mes_timer, | 23 | body.no-timer .mes_timer, |
| 23 | body.no-timestamps .timestamp, | 24 | body.no-timestamps .timestamp, |
| 24 | body.no-tokenCount .tokenCounterDisplay, | 25 | body.no-tokenCount .tokenCounterDisplay, |
| @@ -28,6 +29,12 @@ body.hideChatAvatars .mesAvatarWrapper .avatar { | |||
| 28 | display: none !important; | 29 | display: none !important; |
| 29 | } | 30 | } |
| 30 | 31 | ||
| 32 | body.no-hotswap #CharListButtonAndHotSwaps .flex-container { | ||
| 33 | flex-wrap: nowrap; | ||
| 34 | align-items: flex-end; | ||
| 35 | flex-flow: row; | ||
| 36 | } | ||
| 37 | |||
| 31 | body.hideChatAvatars .last_mes:not(.smallSysMes) { | 38 | body.hideChatAvatars .last_mes:not(.smallSysMes) { |
| 32 | padding-bottom: 20px !important; | 39 | padding-bottom: 20px !important; |
| 33 | } | 40 | } |
| @@ -521,4 +528,4 @@ label[for="trim_spaces"]:not(:has(input:checked)) small { | |||
| 521 | 528 | ||
| 522 | label[for="bind_preset_to_connection"]:has(input:checked) { | 529 | label[for="bind_preset_to_connection"]:has(input:checked) { |
| 523 | color: var(--active); | 530 | color: var(--active); |
| 524 | } | 531 | } |
| \ No newline at end of file | 531 | \ No newline at end of file | |
| @@ -140,7 +140,7 @@ | |||
| 140 | <div data-preset-manager-import="novel" class="margin0 menu_button_icon menu_button" title="Import preset" data-i18n="[title]Import preset"> | 140 | <div data-preset-manager-import="novel" class="margin0 menu_button_icon menu_button" title="Import preset" data-i18n="[title]Import preset"> |
| 141 | <i class="fa-fw fa-solid fa-file-import"></i> | 141 | <i class="fa-fw fa-solid fa-file-import"></i> |
| 142 | </div> | 142 | </div> |
| 143 | <div data-preset-manager-export="novel" class="margin0 menu_button_icon menu_button" title="Export preset" data-i18n="[title]Export preset"> | 143 | <div data-preset-manager-export="novel" class="margin0 menu_button_icon menu_button" title="Export preset" data-i18n="[title]Export preset"> |
| 144 | <i class="fa-fw fa-solid fa-file-export"></i> | 144 | <i class="fa-fw fa-solid fa-file-export"></i> |
| 145 | </div> | 145 | </div> |
| 146 | <div data-preset-manager-delete="novel" class="margin0 menu_button_icon menu_button" title="Delete the preset" data-i18n="[title]Delete the preset"> | 146 | <div data-preset-manager-delete="novel" class="margin0 menu_button_icon menu_button" title="Delete the preset" data-i18n="[title]Delete the preset"> |
| @@ -663,7 +663,7 @@ | |||
| 663 | <div data-source="openrouter" class="range-block"> | 663 | <div data-source="openrouter" class="range-block"> |
| 664 | <div class="range-block-title" title="Allow compressing requests by removing messages from the middle of the prompt."> | 664 | <div class="range-block-title" title="Allow compressing requests by removing messages from the middle of the prompt."> |
| 665 | <span data-i18n="Middle-out Transform">Middle-out Transform</span> | 665 | <span data-i18n="Middle-out Transform">Middle-out Transform</span> |
| 666 | <a href="https://openrouter.ai/docs/transforms" target="_blank" rel="noreferrer noopener" class="note-link-span fa-solid fa-circle-question"></a> | 666 | <a href="https://openrouter.ai/docs/transforms" target="_blank" rel="noreferrer noopener" class="note-link-span fa-solid fa-circle-question"></a> |
| 667 | </div> | 667 | </div> |
| 668 | <div class="wide100p"> | 668 | <div class="wide100p"> |
| 669 | <select id="openrouter_middleout" class="text_pole"> | 669 | <select id="openrouter_middleout" class="text_pole"> |
| @@ -3300,16 +3300,16 @@ | |||
| 3300 | <span id="vertexai_service_account_info"></span> | 3300 | <span id="vertexai_service_account_info"></span> |
| 3301 | </div> | 3301 | </div> |
| 3302 | <textarea id="vertexai_service_account_json" class="text_pole textarea_compact" rows="4" placeholder='Paste your Service Account JSON content here, e.g.: | 3302 | <textarea id="vertexai_service_account_json" class="text_pole textarea_compact" rows="4" placeholder='Paste your Service Account JSON content here, e.g.: |
| 3303 | { | 3303 | { |
| 3304 | "type": "service_account", | 3304 | "type": "service_account", |
| 3305 | "project_id": "your-project-id", | 3305 | "project_id": "your-project-id", |
| 3306 | "private_key_id": "...", | 3306 | "private_key_id": "...", |
| 3307 | "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n", | 3307 | "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n", |
| 3308 | "client_email": "...", | 3308 | "client_email": "...", |
| 3309 | "client_id": "...", | 3309 | "client_id": "...", |
| 3310 | "auth_uri": "https://accounts.google.com/o/oauth2/auth", | 3310 | "auth_uri": "https://accounts.google.com/o/oauth2/auth", |
| 3311 | "token_uri": "https://oauth2.googleapis.com/token" | 3311 | "token_uri": "https://oauth2.googleapis.com/token" |
| 3312 | }'></textarea> | 3312 | }'></textarea> |
| 3313 | <div data-for="vertexai_service_account_json" class="neutral_warning" data-i18n="For privacy reasons, your Service Account JSON content will be hidden after you reload the page."> | 3313 | <div data-for="vertexai_service_account_json" class="neutral_warning" data-i18n="For privacy reasons, your Service Account JSON content will be hidden after you reload the page."> |
| 3314 | For privacy reasons, your Service Account JSON content will be hidden after you reload the page. | 3314 | For privacy reasons, your Service Account JSON content will be hidden after you reload the page. |
| 3315 | </div> | 3315 | </div> |
| @@ -3825,7 +3825,7 @@ | |||
| 3825 | <input id="instruct_bind_to_context" type="checkbox" style="display:none;" /> | 3825 | <input id="instruct_bind_to_context" type="checkbox" style="display:none;" /> |
| 3826 | <small><i class="fa-solid fa-link menu_button margin0"></i></small> | 3826 | <small><i class="fa-solid fa-link menu_button margin0"></i></small> |
| 3827 | </label> | 3827 | </label> |
| 3828 | <label id="instruct_enabled_label"for="instruct_enabled" class="checkbox_label flex1" title="Enable Instruct Mode" data-i18n="[title]instruct_enabled"> | 3828 | <label id="instruct_enabled_label" for="instruct_enabled" class="checkbox_label flex1" title="Enable Instruct Mode" data-i18n="[title]instruct_enabled"> |
| 3829 | <input id="instruct_enabled" type="checkbox" style="display:none;" /> | 3829 | <input id="instruct_enabled" type="checkbox" style="display:none;" /> |
| 3830 | <small><i class="fa-solid fa-power-off menu_button togglable margin0"></i></small> | 3830 | <small><i class="fa-solid fa-power-off menu_button togglable margin0"></i></small> |
| 3831 | </label> | 3831 | </label> |
| @@ -5284,7 +5284,7 @@ | |||
| 5284 | <div class="flex-container wide100p alignitemscenter spaceBetween flexNoGap"> | 5284 | <div class="flex-container wide100p alignitemscenter spaceBetween flexNoGap"> |
| 5285 | <div class="flex-container alignItemsBaseline wide100p"> | 5285 | <div class="flex-container alignItemsBaseline wide100p"> |
| 5286 | <div class="flex1 flex-container alignItemsBaseline"> | 5286 | <div class="flex1 flex-container alignItemsBaseline"> |
| 5287 | <h3 class="margin0" > | 5287 | <h3 class="margin0"> |
| 5288 | <span data-i18n="Persona Management">Persona Management</span> | 5288 | <span data-i18n="Persona Management">Persona Management</span> |
| 5289 | <a href="https://docs.sillytavern.app/usage/core-concepts/personas/" target="_blank"> | 5289 | <a href="https://docs.sillytavern.app/usage/core-concepts/personas/" target="_blank"> |
| 5290 | <span class="fa-solid fa-circle-question note-link-span"></span> | 5290 | <span class="fa-solid fa-circle-question note-link-span"></span> |
| @@ -5455,10 +5455,12 @@ | |||
| 5455 | <div class="right_menu_button fa-solid fa-list-ul" id="rm_button_characters" title="Select/Create Characters" data-i18n="[title]Select/Create Characters"></div> | 5455 | <div class="right_menu_button fa-solid fa-list-ul" id="rm_button_characters" title="Select/Create Characters" data-i18n="[title]Select/Create Characters"></div> |
| 5456 | </div> | 5456 | </div> |
| 5457 | <div id="HotSwapWrapper" class="alignitemscenter flex-container margin0auto wide100p"> | 5457 | <div id="HotSwapWrapper" class="alignitemscenter flex-container margin0auto wide100p"> |
| 5458 | <div class="hotswap avatars_inline scroll-reset-container expander" data-i18n="[no_favs]Favorite characters to add them to HotSwaps" no_favs="Favorite characters to add them to HotSwaps"></div> | 5458 | <div class="hotswap avatars_inline scroll-reset-container expander" data-i18n="[no_favs]Favorite characters to add them to HotSwaps" no_favs="Favorite characters to add them to HotSwaps"> |
| 5459 | </div> | ||
| 5460 | <hr class="wide100p"> | ||
| 5459 | </div> | 5461 | </div> |
| 5460 | </div> | 5462 | </div> |
| 5461 | <hr> | 5463 | |
| 5462 | <!-- this div structure must be preserved until group peeking can adjust --> | 5464 | <!-- this div structure must be preserved until group peeking can adjust --> |
| 5463 | <div id="rm_PinAndTabs"> | 5465 | <div id="rm_PinAndTabs"> |
| 5464 | <div id="right-nav-panel-tabs" class=""> | 5466 | <div id="right-nav-panel-tabs" class=""> |
| @@ -7488,4 +7490,4 @@ | |||
| 7488 | </script> | 7490 | </script> |
| 7489 | </body> | 7491 | </body> |
| 7490 | 7492 | ||
| 7491 | </html> | 7493 | </html> |
| \ No newline at end of file | 7493 | \ No newline at end of file | |
| @@ -10339,9 +10339,25 @@ export async function doNavbarIconClick() { | |||
| 10339 | icon.toggleClass('openIcon closedIcon'); | 10339 | icon.toggleClass('openIcon closedIcon'); |
| 10340 | drawer.toggleClass('openDrawer closedDrawer'); | 10340 | drawer.toggleClass('openDrawer closedDrawer'); |
| 10341 | 10341 | ||
| 10342 | //commented code is to prevent scrollbars showing during transition, if we want to do that | ||
| 10343 | //'scrollableInner' only exists on samplers panel though, so will need different logic for each drawer | ||
| 10344 | //this does create an undesireable leftward width retraction of about 15px if a natural scrollbar pops after transition | ||
| 10345 | //however, if we don't prevent the transition scrollbar, we get a 15px expansion right when it is no longer needed | ||
| 10346 | //we get to pick our poison. (or...we go with just opacity transitions and stop caring about height and layout shifts.) | ||
| 10347 | //only true fix for this is to make scrollbars always show (overflow-y:scroll), and style them so they are transparent until div hover | ||
| 10348 | //this creates a 15px perma-padding on the right of the div tho, even when not needed | ||
| 10349 | //example of this can be seen on STMP's pastChat list | ||
| 10350 | |||
| 10351 | //drawer.find('.scrollableInner').addClass('overflowHidden'); //prevents scrollbars | ||
| 10352 | //await delay(250); //this duration is presumed | ||
| 10353 | //drawer.find('.scrollableInner').removeClass('overflowHidden'); //restore after transition | ||
| 10354 | |||
| 10342 | if (targetDrawerID === 'right-nav-panel') { | 10355 | if (targetDrawerID === 'right-nav-panel') { |
| 10343 | favsToHotswap(); | 10356 | favsToHotswap(); |
| 10344 | $('#rm_print_characters_block').trigger('scroll'); | 10357 | $('#rm_print_characters_block').trigger('scroll'); |
| 10358 | const hotSwapBlockHeight = $('#CharListButtonAndHotSwaps').css('height'); | ||
| 10359 | const heightMinusHotSwapBlockHeight = 'calc(100% - ' + hotSwapBlockHeight + ')'; | ||
| 10360 | $('#rm_ch_create_block, #rm_characters_block').css('height', heightMinusHotSwapBlockHeight); | ||
| 10345 | } | 10361 | } |
| 10346 | 10362 | ||
| 10347 | // Set the height of "autoSetHeight" textareas within the drawer to their scroll height | 10363 | // Set the height of "autoSetHeight" textareas within the drawer to their scroll height |
| @@ -10353,8 +10369,14 @@ export async function doNavbarIconClick() { | |||
| 10353 | } | 10369 | } |
| 10354 | } | 10370 | } |
| 10355 | } else if (drawerWasOpenAlready) { | 10371 | } else if (drawerWasOpenAlready) { |
| 10372 | |||
| 10373 | //drawer.find('.scrollableInner').toggleClass('overflowHidden'); //prevents scrollbars | ||
| 10374 | |||
| 10356 | icon.toggleClass('closedIcon openIcon'); | 10375 | icon.toggleClass('closedIcon openIcon'); |
| 10357 | drawer.toggleClass('closedDrawer openDrawer'); | 10376 | drawer.toggleClass('closedDrawer openDrawer'); |
| 10377 | |||
| 10378 | //await delay(250); //this duration is presumed | ||
| 10379 | //drawer.find('.scrollableInner').toggleClass('overflowHidden'); //restore to default | ||
| 10358 | } | 10380 | } |
| 10359 | } | 10381 | } |
| 10360 | 10382 | ||
| @@ -453,6 +453,9 @@ function fixMarkdown(text, forDisplay) { | |||
| 453 | function switchHotswap() { | 453 | function switchHotswap() { |
| 454 | $('body').toggleClass('no-hotswap', !power_user.hotswap_enabled); | 454 | $('body').toggleClass('no-hotswap', !power_user.hotswap_enabled); |
| 455 | $('#hotswapEnabled').prop('checked', power_user.hotswap_enabled); | 455 | $('#hotswapEnabled').prop('checked', power_user.hotswap_enabled); |
| 456 | const hotSwapBlockHeight = $('#CharListButtonAndHotSwaps').css('height'); | ||
| 457 | const heightMinusHotSwapBlockHeight = 'calc(100% - ' + hotSwapBlockHeight + ')'; | ||
| 458 | $('#rm_ch_create_block, #rm_characters_block').css('height', heightMinusHotSwapBlockHeight); | ||
| 456 | } | 459 | } |
| 457 | 460 | ||
| 458 | function switchTimer() { | 461 | function switchTimer() { |
| @@ -3369,7 +3369,7 @@ input[type=search]:focus::-webkit-search-cancel-button { | |||
| 3369 | #form_create { | 3369 | #form_create { |
| 3370 | display: flex; | 3370 | display: flex; |
| 3371 | flex-direction: column; | 3371 | flex-direction: column; |
| 3372 | height: 100%; | 3372 | height: calc(100% - var(--topBarBlockSize)); |
| 3373 | overflow-y: auto; | 3373 | overflow-y: auto; |
| 3374 | padding: 1px; | 3374 | padding: 1px; |
| 3375 | } | 3375 | } |
| @@ -6209,4 +6209,4 @@ body:not(.movingUI) .drawer-content.maximized { | |||
| 6209 | .info-block.error { | 6209 | .info-block.error { |
| 6210 | border-color: var(--error-color, #e87f7f); | 6210 | border-color: var(--error-color, #e87f7f); |
| 6211 | background-color: rgba(241, 163, 163, 0.2); | 6211 | background-color: rgba(241, 163, 163, 0.2); |
| 6212 | } | 6212 | } |
| \ No newline at end of file | 6212 | \ No newline at end of file | |