mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-02-08 08:08:51 +01:00
Merge branch 'SillyTavern:staging' into staging
This commit is contained in:
commit
9e2ebdb43e
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "sillytavern",
|
"name": "sillytavern",
|
||||||
"version": "1.9.6",
|
"version": "1.9.7",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "sillytavern",
|
"name": "sillytavern",
|
||||||
"version": "1.9.6",
|
"version": "1.9.7",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@dqbd/tiktoken": "^1.0.2",
|
"@dqbd/tiktoken": "^1.0.2",
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/SillyTavern/SillyTavern.git"
|
"url": "https://github.com/SillyTavern/SillyTavern.git"
|
||||||
},
|
},
|
||||||
"version": "1.9.6",
|
"version": "1.9.7",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node server.js",
|
"start": "node server.js",
|
||||||
"start-multi": "node server.js --disableCsrf",
|
"start-multi": "node server.js --disableCsrf",
|
||||||
|
@ -787,21 +787,45 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="range-block flexFlowColumn">
|
<div class="range-block flexFlowColumn">
|
||||||
<div class="range-block-title" data-i18n="Samplers Order">
|
<div class="range-block-title">
|
||||||
Samplers Order
|
<span data-i18n="Samplers Order">Samplers Order</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="toggle-description" data-i18n="Samplers will be applied in a top-down order. Use with caution.">
|
<div class="toggle-description" data-i18n="Samplers will be applied in a top-down order. Use with caution.">
|
||||||
Samplers will be applied in a top-down order.
|
Samplers will be applied in a top-down order.
|
||||||
Use with caution.
|
Use with caution.
|
||||||
</div>
|
</div>
|
||||||
<div id="kobold_order">
|
<div id="kobold_order">
|
||||||
<div data-id="0" data-i18n="Top K">Top K</div>
|
<div data-id="0">
|
||||||
<div data-id="1" data-i18n="Top A">Top A</div>
|
<span data-i18n="Top K">Top K</span>
|
||||||
<div data-id="2" data-i18n="Top P">Top P</div>
|
<small>0</small>
|
||||||
<div data-id="3" data-i18n="Tail Free Sampling">Tail Free Sampling</div>
|
</div>
|
||||||
<div data-id="4" data-i18n="Typical Sampling">Typical Sampling</div>
|
<div data-id="1">
|
||||||
<div data-id="5" data-i18n="Temperature">Temperature</div>
|
<span data-i18n="Top A">Top A</span>
|
||||||
<div data-id="6" data-i18n="Repetition Penalty">Repetition Penalty</div>
|
<small>1</small>
|
||||||
|
</div>
|
||||||
|
<div data-id="2">
|
||||||
|
<span data-i18n="Top P">Top P</span>
|
||||||
|
<small>2</small>
|
||||||
|
</div>
|
||||||
|
<div data-id="3">
|
||||||
|
<span data-i18n="Tail Free Sampling">Tail Free Sampling</span>
|
||||||
|
<small>3</small>
|
||||||
|
</div>
|
||||||
|
<div data-id="4">
|
||||||
|
<span data-i18n="Typical Sampling">Typical Sampling</span>
|
||||||
|
<small>4</small>
|
||||||
|
</div>
|
||||||
|
<div data-id="5">
|
||||||
|
<span data-i18n="Temperature">Temperature</span>
|
||||||
|
<small>5</small>
|
||||||
|
</div>
|
||||||
|
<div data-id="6">
|
||||||
|
<span data-i18n="Repetition Penalty">Repetition Penalty</span>
|
||||||
|
<small>6</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="samplers_order_recommended" class="menu_button menu_button_icon">
|
||||||
|
<span data-i18n="Load koboldcpp order">Load koboldcpp order</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -1751,7 +1775,7 @@
|
|||||||
<option data-i18n="Connect to the API">-- Connect to the API --</option>
|
<option data-i18n="Connect to the API">-- Connect to the API --</option>
|
||||||
</select>
|
</select>
|
||||||
<small>
|
<small>
|
||||||
Max prompt cost: <span id="openrouter_max_prompt_cost">Unknown</span> <span id="openrouter_max_prompt_cost_currency">USD</span>
|
Max prompt cost: <span id="openrouter_max_prompt_cost">Unknown</span>
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
<h4 data-i18n="OpenRouter API Key">OpenRouter API Key</h4>
|
<h4 data-i18n="OpenRouter API Key">OpenRouter API Key</h4>
|
||||||
@ -2482,11 +2506,11 @@
|
|||||||
<div id="power-user-options-block" class="flex-container drawer33pWidth">
|
<div id="power-user-options-block" class="flex-container drawer33pWidth">
|
||||||
<div id="power-user-option-checkboxes">
|
<div id="power-user-option-checkboxes">
|
||||||
<h4 data-i18n="Power User Options">Power User Options</h4>
|
<h4 data-i18n="Power User Options">Power User Options</h4>
|
||||||
<label for="swipes-checkbox">
|
<label class="checkbox_label" for="swipes-checkbox">
|
||||||
<input id="swipes-checkbox" type="checkbox" />
|
<input id="swipes-checkbox" type="checkbox" />
|
||||||
<span data-i18n="Swipes">Swipes</span>
|
<span data-i18n="Swipes">Swipes</span>
|
||||||
</label>
|
</label>
|
||||||
<label for="fuzzy_search_checkbox">
|
<label class="checkbox_label" for="fuzzy_search_checkbox">
|
||||||
<input id="fuzzy_search_checkbox" type="checkbox" />
|
<input id="fuzzy_search_checkbox" type="checkbox" />
|
||||||
<span data-i18n="Advanced Character Search">Advanced Character Search</span>
|
<span data-i18n="Advanced Character Search">Advanced Character Search</span>
|
||||||
</label>
|
</label>
|
||||||
@ -2504,13 +2528,15 @@
|
|||||||
Press "Send" to continue
|
Press "Send" to continue
|
||||||
</span>
|
</span>
|
||||||
</label>
|
</label>
|
||||||
<label for="auto-load-chat-checkbox"><input id="auto-load-chat-checkbox" type="checkbox" />
|
<label class="checkbox_label" for="auto-load-chat-checkbox">
|
||||||
|
<input id="auto-load-chat-checkbox" type="checkbox" />
|
||||||
<span data-i18n="Auto-load Last Chat">Auto-load Last Chat</span>
|
<span data-i18n="Auto-load Last Chat">Auto-load Last Chat</span>
|
||||||
</label>
|
</label>
|
||||||
<label for="auto_save_msg_edits"><input id="auto_save_msg_edits" type="checkbox" />
|
<label class="checkbox_label" for="auto_save_msg_edits">
|
||||||
|
<input id="auto_save_msg_edits" type="checkbox" />
|
||||||
<span data-i18n="Auto-save Message Edits">Auto-save Message Edits</span>
|
<span data-i18n="Auto-save Message Edits">Auto-save Message Edits</span>
|
||||||
</label>
|
</label>
|
||||||
<label for="auto_fix_generated_markdown">
|
<label class="checkbox_label" for="auto_fix_generated_markdown">
|
||||||
<input id="auto_fix_generated_markdown" type="checkbox" />
|
<input id="auto_fix_generated_markdown" type="checkbox" />
|
||||||
<span data-i18n="Auto-fix Markdown">Auto-fix Markdown</span>
|
<span data-i18n="Auto-fix Markdown">Auto-fix Markdown</span>
|
||||||
</label>
|
</label>
|
||||||
@ -2522,37 +2548,43 @@
|
|||||||
<input id="allow_name1_display" type="checkbox" />
|
<input id="allow_name1_display" type="checkbox" />
|
||||||
<span data-i18n="Allow {{user}}: in bot messages">Show {{user}}: in responses</span>
|
<span data-i18n="Allow {{user}}: in bot messages">Show {{user}}: in responses</span>
|
||||||
</label>
|
</label>
|
||||||
<!-- <label class="checkbox_label" for="removeXML">
|
<label class="checkbox_label" for="encode_tags">
|
||||||
<input id="removeXML" type="checkbox" />
|
<input id="encode_tags" type="checkbox" />
|
||||||
<span data-i18n="Remove XML/HTML tags from responses">Remove <tags> from responses</span>
|
<span data-i18n="Show tags in responses">Show <tags> in responses</span>
|
||||||
</label> -->
|
</label>
|
||||||
<label for="console_log_prompts">
|
<label class="checkbox_label" for="console_log_prompts">
|
||||||
<input id="console_log_prompts" type="checkbox" />
|
<input id="console_log_prompts" type="checkbox" />
|
||||||
<span data-i18n="Log prompts to console">Log prompts to console</span>
|
<span data-i18n="Log prompts to console">Log prompts to console</span>
|
||||||
</label>
|
</label>
|
||||||
<label for="render_formulas">
|
<label class="checkbox_label" for="render_formulas">
|
||||||
<input id="render_formulas" type="checkbox" />
|
<input id="render_formulas" type="checkbox" />
|
||||||
<span data-i18n="Render Formulas">Render Formulas</span>
|
<span data-i18n="Render Formulas">Render Formulas</span>
|
||||||
<a href="https://docs.sillytavern.app/usage/core-concepts/uicustomization/#formulas-rendering" class="notes-link" target="_blank">
|
<a href="https://docs.sillytavern.app/usage/core-concepts/uicustomization/#formulas-rendering" class="notes-link" target="_blank">
|
||||||
<span class="note-link-span">?</span>
|
<span class="note-link-span">?</span>
|
||||||
</a>
|
</a>
|
||||||
</label>
|
</label>
|
||||||
<label for="never_resize_avatars"><input id="never_resize_avatars" type="checkbox" />
|
<label class="checkbox_label" for="never_resize_avatars">
|
||||||
|
<input id="never_resize_avatars" type="checkbox" />
|
||||||
<span data-i18n="Never resize avatars">Never resize avatars</span>
|
<span data-i18n="Never resize avatars">Never resize avatars</span>
|
||||||
</label>
|
</label>
|
||||||
<label for="show_card_avatar_urls"><input id="show_card_avatar_urls" type="checkbox" />
|
<label class="checkbox_label" for="show_card_avatar_urls">
|
||||||
|
<input id="show_card_avatar_urls" type="checkbox" />
|
||||||
<span data-i18n="Show avatar filenames">Show avatar filenames</span>
|
<span data-i18n="Show avatar filenames">Show avatar filenames</span>
|
||||||
</label>
|
</label>
|
||||||
<label for="import_card_tags"><input id="import_card_tags" type="checkbox" />
|
<label class="checkbox_label" for="import_card_tags">
|
||||||
|
<input id="import_card_tags" type="checkbox" />
|
||||||
<span data-i18n="Import Card Tags">Import Card Tags</span>
|
<span data-i18n="Import Card Tags">Import Card Tags</span>
|
||||||
</label>
|
</label>
|
||||||
<label for="confirm_message_delete"><input id="confirm_message_delete" type="checkbox" />
|
<label class="checkbox_label" for="confirm_message_delete">
|
||||||
|
<input id="confirm_message_delete" type="checkbox" />
|
||||||
<span data-i18n="Confirm message deletion">Confirm message deletion</span>
|
<span data-i18n="Confirm message deletion">Confirm message deletion</span>
|
||||||
</label>
|
</label>
|
||||||
<label for="spoiler_free_mode"><input id="spoiler_free_mode" type="checkbox" />
|
<label class="checkbox_label" for="spoiler_free_mode">
|
||||||
|
<input id="spoiler_free_mode" type="checkbox" />
|
||||||
<span data-i18n="Spoiler Free Mode">Spoiler Free Mode</span>
|
<span data-i18n="Spoiler Free Mode">Spoiler Free Mode</span>
|
||||||
</label>
|
</label>
|
||||||
<label for="relaxed_api_urls" title="Reduce the formatting requirements on API URLS"><input id="relaxed_api_urls" type="checkbox" />
|
<label class="checkbox_label" for="relaxed_api_urls" title="Reduce the formatting requirements on API URLS">
|
||||||
|
<input id="relaxed_api_urls" type="checkbox" />
|
||||||
<span data-i18n="Relaxed API URLS">Relaxed API URLS</span>
|
<span data-i18n="Relaxed API URLS">Relaxed API URLS</span>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
|
@ -679,6 +679,7 @@ function reloadMarkdownProcessor(render_formulas = false) {
|
|||||||
converter = new showdown.Converter({
|
converter = new showdown.Converter({
|
||||||
emoji: "true",
|
emoji: "true",
|
||||||
underline: "true",
|
underline: "true",
|
||||||
|
tables: "true",
|
||||||
parseImgDimensions: "true",
|
parseImgDimensions: "true",
|
||||||
extensions: [
|
extensions: [
|
||||||
showdownKatex(
|
showdownKatex(
|
||||||
@ -696,6 +697,7 @@ function reloadMarkdownProcessor(render_formulas = false) {
|
|||||||
emoji: "true",
|
emoji: "true",
|
||||||
literalMidWordUnderscores: "true",
|
literalMidWordUnderscores: "true",
|
||||||
parseImgDimensions: "true",
|
parseImgDimensions: "true",
|
||||||
|
tables: "true",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1269,8 +1271,10 @@ function messageFormatting(mes, ch_name, isSystem, isUser) {
|
|||||||
mes = fixMarkdown(mes);
|
mes = fixMarkdown(mes);
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (this_chid != undefined && !isSystem)
|
if (!isSystem && power_user.encode_tags) {
|
||||||
// mes = mes.replaceAll("<", "<").replaceAll(">", ">"); //for welcome message
|
mes = mes.replaceAll("<", "<").replaceAll(">", ">");
|
||||||
|
}
|
||||||
|
|
||||||
if ((this_chid === undefined || this_chid === "invalid-safety-id") && !selected_group) {
|
if ((this_chid === undefined || this_chid === "invalid-safety-id") && !selected_group) {
|
||||||
mes = mes
|
mes = mes
|
||||||
.replace(/\*\*(.+?)\*\*/g, "<b>$1</b>")
|
.replace(/\*\*(.+?)\*\*/g, "<b>$1</b>")
|
||||||
|
@ -515,7 +515,7 @@ async function moduleWorker() {
|
|||||||
|
|
||||||
//set checkbox to global var
|
//set checkbox to global var
|
||||||
$('#image_type_toggle').prop('checked', extension_settings.expressions.live2d);
|
$('#image_type_toggle').prop('checked', extension_settings.expressions.live2d);
|
||||||
if(extension_settings.expressions.live2d == true){
|
if (extension_settings.expressions.live2d) {
|
||||||
setLive2dState(extension_settings.expressions.live2d);
|
setLive2dState(extension_settings.expressions.live2d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -674,10 +674,6 @@ function setLive2dState(switch_var){
|
|||||||
//console.log("Live2d does not exist.");
|
//console.log("Live2d does not exist.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSpriteFolderName(message) {
|
function getSpriteFolderName(message) {
|
||||||
@ -867,8 +863,7 @@ async function getExpressionsList() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function setExpression(character, expression, force) {
|
async function setExpression(character, expression, force) {
|
||||||
if (extension_settings.expressions.live2d == false) {
|
if (!extension_settings.expressions.live2d) {
|
||||||
|
|
||||||
console.debug('entered setExpressions');
|
console.debug('entered setExpressions');
|
||||||
await validateImages(character);
|
await validateImages(character);
|
||||||
const img = $('img.expression');
|
const img = $('img.expression');
|
||||||
@ -961,12 +956,13 @@ async function setExpression(character, expression, force) {
|
|||||||
setDefault();
|
setDefault();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
if (extension_settings.expressions.showDefault) {
|
if (extension_settings.expressions.showDefault) {
|
||||||
setDefault();
|
setDefault();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function setDefault() {
|
function setDefault() {
|
||||||
console.debug('setting default');
|
console.debug('setting default');
|
||||||
@ -1260,6 +1256,7 @@ function setExpressionOverrideHtml(forceClear = false) {
|
|||||||
<input id="image_type_toggle" type="checkbox">
|
<input id="image_type_toggle" type="checkbox">
|
||||||
<span class="slider round"></span>
|
<span class="slider round"></span>
|
||||||
<label for="image_type_toggle">Image Type - Live2d (extras)</label>
|
<label for="image_type_toggle">Image Type - Live2d (extras)</label>
|
||||||
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="offline_mode">
|
<div class="offline_mode">
|
||||||
<small>You are in offline mode. Click on the image below to set the expression.</small>
|
<small>You are in offline mode. Click on the image below to set the expression.</small>
|
||||||
|
@ -35,6 +35,7 @@ const kai_settings = {
|
|||||||
|
|
||||||
const MIN_STOP_SEQUENCE_VERSION = '1.2.2';
|
const MIN_STOP_SEQUENCE_VERSION = '1.2.2';
|
||||||
const MIN_STREAMING_KCPPVERSION = '1.30';
|
const MIN_STREAMING_KCPPVERSION = '1.30';
|
||||||
|
const KOBOLDCPP_ORDER = [6, 0, 1, 3, 4, 2, 5];
|
||||||
|
|
||||||
function formatKoboldUrl(value) {
|
function formatKoboldUrl(value) {
|
||||||
try {
|
try {
|
||||||
@ -276,4 +277,10 @@ $(document).ready(function () {
|
|||||||
saveSettingsDebounced();
|
saveSettingsDebounced();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#samplers_order_recommended').on('click', function () {
|
||||||
|
kai_settings.sampler_order = KOBOLDCPP_ORDER;
|
||||||
|
sortItemsByOrder(kai_settings.sampler_order);
|
||||||
|
saveSettingsDebounced();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -707,7 +707,7 @@ function calculateOpenRouterCost() {
|
|||||||
const promptTokens = (oai_settings.openai_max_context - completionTokens);
|
const promptTokens = (oai_settings.openai_max_context - completionTokens);
|
||||||
const totalCost = (completionCost * completionTokens) + (promptCost * promptTokens);
|
const totalCost = (completionCost * completionTokens) + (promptCost * promptTokens);
|
||||||
if (!isNaN(totalCost)) {
|
if (!isNaN(totalCost)) {
|
||||||
cost = totalCost.toFixed(2);
|
cost = '$' + totalCost.toFixed(3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,6 +192,7 @@ let power_user = {
|
|||||||
custom_stopping_strings: '',
|
custom_stopping_strings: '',
|
||||||
custom_stopping_strings_macro: true,
|
custom_stopping_strings_macro: true,
|
||||||
fuzzy_search: false,
|
fuzzy_search: false,
|
||||||
|
encode_tags: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
let themes = [];
|
let themes = [];
|
||||||
@ -686,6 +687,7 @@ function loadPowerUserSettings(settings, data) {
|
|||||||
$("#custom_stopping_strings_macro").prop("checked", power_user.custom_stopping_strings_macro);
|
$("#custom_stopping_strings_macro").prop("checked", power_user.custom_stopping_strings_macro);
|
||||||
$('#fuzzy_search_checkbox').prop("checked", power_user.fuzzy_search);
|
$('#fuzzy_search_checkbox').prop("checked", power_user.fuzzy_search);
|
||||||
$('#persona_show_notifications').prop("checked", power_user.persona_show_notifications);
|
$('#persona_show_notifications').prop("checked", power_user.persona_show_notifications);
|
||||||
|
$('#encode_tags').prop("checked", power_user.encode_tags);
|
||||||
|
|
||||||
$("#console_log_prompts").prop("checked", power_user.console_log_prompts);
|
$("#console_log_prompts").prop("checked", power_user.console_log_prompts);
|
||||||
$('#auto_fix_generated_markdown').prop("checked", power_user.auto_fix_generated_markdown);
|
$('#auto_fix_generated_markdown').prop("checked", power_user.auto_fix_generated_markdown);
|
||||||
@ -2032,6 +2034,12 @@ $(document).ready(() => {
|
|||||||
saveSettingsDebounced();
|
saveSettingsDebounced();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#encode_tags').on('input', async function () {
|
||||||
|
power_user.encode_tags = !!$(this).prop('checked');
|
||||||
|
await reloadCurrentChat();
|
||||||
|
saveSettingsDebounced();
|
||||||
|
});
|
||||||
|
|
||||||
$(window).on('focus', function () {
|
$(window).on('focus', function () {
|
||||||
browser_has_focus = true;
|
browser_has_focus = true;
|
||||||
});
|
});
|
||||||
|
@ -188,6 +188,18 @@ table.responsiveTable {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mes_text table {
|
||||||
|
border-spacing: 0;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mes_text td,
|
||||||
|
.mes_text th {
|
||||||
|
border: 1px solid;
|
||||||
|
border-collapse: collapse;
|
||||||
|
padding: 0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
.mes_text p {
|
.mes_text p {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
@ -222,6 +234,10 @@ table.responsiveTable {
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mes_text rp {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
.mes_text blockquote {
|
.mes_text blockquote {
|
||||||
border-left: 3px solid var(--SmartThemeQuoteColor);
|
border-left: 3px solid var(--SmartThemeQuoteColor);
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
@ -2160,6 +2176,9 @@ grammarly-extension {
|
|||||||
transition: background-color 200ms ease-in-out;
|
transition: background-color 200ms ease-in-out;
|
||||||
position: relative;
|
position: relative;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
#kobold_order>div:hover {
|
#kobold_order>div:hover {
|
||||||
@ -2772,7 +2791,6 @@ input[type="range"]::-webkit-slider-thumb {
|
|||||||
#power-user-option-checkboxes {
|
#power-user-option-checkboxes {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
row-gap: 5px;
|
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user