mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
#708 Convert author's note to built-in function instead of extension
This commit is contained in:
@@ -93,6 +93,7 @@
|
|||||||
<script type="module" src="scripts/secrets.js"></script>
|
<script type="module" src="scripts/secrets.js"></script>
|
||||||
<script type="module" src="scripts/context-template.js"></script>
|
<script type="module" src="scripts/context-template.js"></script>
|
||||||
<script type="module" src="scripts/extensions.js"></script>
|
<script type="module" src="scripts/extensions.js"></script>
|
||||||
|
<script type="module" src="scripts/authors-note.js"></script>
|
||||||
<script type="text/javascript" src="scripts/toolcool-color-picker.js"></script>
|
<script type="text/javascript" src="scripts/toolcool-color-picker.js"></script>
|
||||||
|
|
||||||
<title>SillyTavern</title>
|
<title>SillyTavern</title>
|
||||||
@@ -3554,7 +3555,105 @@
|
|||||||
<div id="typing_indicator_template" class="template_element">
|
<div id="typing_indicator_template" class="template_element">
|
||||||
<div class="typing_indicator"><span class="typing_indicator_name">CHAR</span> is typing</div>
|
<div class="typing_indicator"><span class="typing_indicator_name">CHAR</span> is typing</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="movingDivs"></div>
|
<div id="movingDivs">
|
||||||
|
<div id="floatingPrompt" class="drawer-content flexGap5">
|
||||||
|
<div class="panelControlBar flex-container">
|
||||||
|
<div id="floatingPromptheader" class="fa-solid fa-grip drag-grabber"></div>
|
||||||
|
<div id="ANClose" class="fa-solid fa-circle-xmark"></div>
|
||||||
|
</div>
|
||||||
|
<div name="floatingPromptHolder">
|
||||||
|
<div class="inline-drawer">
|
||||||
|
<div id="ANBlockToggle" class="inline-drawer-toggle inline-drawer-header">
|
||||||
|
<b>Author's Note</b>
|
||||||
|
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
|
||||||
|
</div>
|
||||||
|
<div class="inline-drawer-content">
|
||||||
|
<small>
|
||||||
|
<b>Unique to this chat</b>.<br>
|
||||||
|
Bookmarks inherit the Note from their parent, and can be changed individually after that.<br>
|
||||||
|
</small>
|
||||||
|
<textarea id="extension_floating_prompt" class="text_pole" rows="8" maxlength="10000"></textarea>
|
||||||
|
<div class="extension_token_counter">
|
||||||
|
Tokens: <span id="extension_floating_prompt_token_counter">0</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="floating_prompt_radio_group">
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="extension_floating_position" value="0" />
|
||||||
|
After scenario
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="extension_floating_position" value="1" />
|
||||||
|
In-chat @ Depth <input id="extension_floating_depth" class="text_pole widthUnset" type="number"
|
||||||
|
min="0" max="99" />
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<!--<label for="extension_floating_interval">In-Chat Insertion Depth</label>-->
|
||||||
|
|
||||||
|
<label for="extension_floating_interval">Insertion Frequency</label>
|
||||||
|
|
||||||
|
<input id="extension_floating_interval" class="text_pole widthUnset" type="number" min="0"
|
||||||
|
max="999" /><small> (0 = Disable, 1 = Always)</small>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<span>User inputs until next insertion: <span id="extension_floating_counter">(disabled)</span></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="sysHR">
|
||||||
|
<div class="inline-drawer">
|
||||||
|
<div id="charaANBlockToggle" class="inline-drawer-toggle inline-drawer-header">
|
||||||
|
<b>Character Author's Note</b>
|
||||||
|
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
|
||||||
|
</div>
|
||||||
|
<div class="inline-drawer-content">
|
||||||
|
<small>Will be automatically added as the author's note for this character. Will be used in groups, but
|
||||||
|
can't be modified when a group chat is open.</small>
|
||||||
|
|
||||||
|
<textarea id="extension_floating_chara" class="text_pole" rows="8" maxlength="10000"
|
||||||
|
placeholder="Example:\n[Scenario: wacky adventures; Genre: romantic comedy; Style: verbose, creative]"></textarea>
|
||||||
|
<div class="extension_token_counter">
|
||||||
|
Tokens: <span id="extension_floating_chara_token_counter">0</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label class="checkbox_label" for="extension_use_floating_chara">
|
||||||
|
<input id="extension_use_floating_chara" type="checkbox" />
|
||||||
|
<span data-i18n="Use character author's note">Use character author's note</span>
|
||||||
|
</label>
|
||||||
|
<div class="floating_prompt_radio_group">
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="extension_floating_char_position" value="0" />
|
||||||
|
Replace Author's Note
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="extension_floating_char_position" value="1" />
|
||||||
|
Top of Author's Note
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="extension_floating_char_position" value="2" />
|
||||||
|
Bottom of Author's Note
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="sysHR">
|
||||||
|
<div class="inline-drawer">
|
||||||
|
<div id="defaultANBlockToggle" class="inline-drawer-toggle inline-drawer-header">
|
||||||
|
<b>Default Author's Note</b>
|
||||||
|
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
|
||||||
|
</div>
|
||||||
|
<div class="inline-drawer-content">
|
||||||
|
<small>Will be automatically added as the Author's Note for all new chats.</small>
|
||||||
|
|
||||||
|
<textarea id="extension_floating_default" class="text_pole" rows="8" maxlength="10000"
|
||||||
|
placeholder="Example:\n[Scenario: wacky adventures; Genre: romantic comedy; Style: verbose, creative]"></textarea>
|
||||||
|
<div class="extension_token_counter">
|
||||||
|
Tokens: <span id="extension_floating_default_token_counter">0</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div id="sheld">
|
<div id="sheld">
|
||||||
<div id="sheldheader" class="fa-solid fa-grip drag-grabber"></div>
|
<div id="sheldheader" class="fa-solid fa-grip drag-grabber"></div>
|
||||||
<div id="chat">
|
<div id="chat">
|
||||||
@@ -3580,6 +3679,10 @@
|
|||||||
<!-- popups live outside sheld to avoid blur conflicts -->
|
<!-- popups live outside sheld to avoid blur conflicts -->
|
||||||
<div id="options" class="font-family-reset" style="display: none;">
|
<div id="options" class="font-family-reset" style="display: none;">
|
||||||
<div class="options-content">
|
<div class="options-content">
|
||||||
|
<a id="option_toggle_AN">
|
||||||
|
<i class="fa-lg fa-solid fa-note-sticky"></i>
|
||||||
|
<span data-i18n="Author's Note">Author's Note</span>
|
||||||
|
</a>
|
||||||
<a id="option_back_to_main">
|
<a id="option_back_to_main">
|
||||||
<i class="fa-lg fa-solid fa-left-long"></i>
|
<i class="fa-lg fa-solid fa-left-long"></i>
|
||||||
<span data-i18n="Back to parent chat">Back to parent chat</span>
|
<span data-i18n="Back to parent chat">Back to parent chat</span>
|
||||||
|
@@ -165,7 +165,7 @@ import {
|
|||||||
import { EventEmitter } from './scripts/eventemitter.js';
|
import { EventEmitter } from './scripts/eventemitter.js';
|
||||||
import { context_settings, loadContextTemplatesFromSettings } from "./scripts/context-template.js";
|
import { context_settings, loadContextTemplatesFromSettings } from "./scripts/context-template.js";
|
||||||
import { markdownExclusionExt } from "./scripts/showdown-exclusion.js";
|
import { markdownExclusionExt } from "./scripts/showdown-exclusion.js";
|
||||||
import { NOTE_MODULE_NAME, metadata_keys, setFloatingPrompt, shouldWIAddPrompt } from "./scripts/extensions/floating-prompt/index.js";
|
import { NOTE_MODULE_NAME, metadata_keys, setFloatingPrompt, shouldWIAddPrompt } from "./scripts/authors-note.js";
|
||||||
import { deviceInfo } from "./scripts/RossAscends-mods.js";
|
import { deviceInfo } from "./scripts/RossAscends-mods.js";
|
||||||
import { getRegexedString, regex_placement } from "./scripts/extensions/regex/engine.js";
|
import { getRegexedString, regex_placement } from "./scripts/extensions/regex/engine.js";
|
||||||
|
|
||||||
|
@@ -5,15 +5,14 @@ import {
|
|||||||
getTokenCount,
|
getTokenCount,
|
||||||
saveSettingsDebounced,
|
saveSettingsDebounced,
|
||||||
this_chid,
|
this_chid,
|
||||||
} from "../../../script.js";
|
} from "../script.js";
|
||||||
import { selected_group } from "../../group-chats.js";
|
import { selected_group } from "./group-chats.js";
|
||||||
import { ModuleWorkerWrapper, extension_settings, getContext, saveMetadataDebounced } from "../../extensions.js";
|
import { extension_settings, getContext, saveMetadataDebounced } from "./extensions.js";
|
||||||
import { registerSlashCommand } from "../../slash-commands.js";
|
import { registerSlashCommand } from "./slash-commands.js";
|
||||||
import { getCharaFilename, debounce, waitUntilCondition, delay } from "../../utils.js";
|
import { getCharaFilename, debounce, waitUntilCondition, delay } from "./utils.js";
|
||||||
export { MODULE_NAME as NOTE_MODULE_NAME };
|
export { MODULE_NAME as NOTE_MODULE_NAME };
|
||||||
|
|
||||||
const MODULE_NAME = '2_floating_prompt'; // <= Deliberate, for sorting lower than memory
|
const MODULE_NAME = '2_floating_prompt'; // <= Deliberate, for sorting lower than memory
|
||||||
const UPDATE_INTERVAL = 1000;
|
|
||||||
|
|
||||||
const DEFAULT_DEPTH = 4;
|
const DEFAULT_DEPTH = 4;
|
||||||
const DEFAULT_POSITION = 1;
|
const DEFAULT_POSITION = 1;
|
||||||
@@ -352,110 +351,10 @@ function onChatChanged() {
|
|||||||
$('#extension_floating_default_token_counter').text(tokenCounter3);
|
$('#extension_floating_default_token_counter').text(tokenCounter3);
|
||||||
}
|
}
|
||||||
|
|
||||||
function addExtensionsSettings() {
|
// Inject extension when extensions_activating is fired
|
||||||
const settingsHtml = `
|
// Inserts the extension first since it's statically imported
|
||||||
<div id="floatingPrompt" class="drawer-content flexGap5">
|
jQuery(async () => {
|
||||||
<div class="panelControlBar flex-container">
|
await waitUntilCondition(() => eventSource !== undefined);
|
||||||
<div id="floatingPromptheader" class="fa-solid fa-grip drag-grabber"></div>
|
|
||||||
<div id="ANClose" class="fa-solid fa-circle-xmark"></div>
|
|
||||||
</div>
|
|
||||||
<div name="floatingPromptHolder">
|
|
||||||
<div class="inline-drawer">
|
|
||||||
<div id="ANBlockToggle" class="inline-drawer-toggle inline-drawer-header">
|
|
||||||
<b>Author's Note</b>
|
|
||||||
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="inline-drawer-content">
|
|
||||||
<small>
|
|
||||||
<b>Unique to this chat</b>.<br>
|
|
||||||
Bookmarks inherit the Note from their parent, and can be changed individually after that.<br>
|
|
||||||
</small>
|
|
||||||
|
|
||||||
<textarea id="extension_floating_prompt" class="text_pole" rows="8" maxlength="10000"></textarea>
|
|
||||||
<div class="extension_token_counter">Tokens: <span id="extension_floating_prompt_token_counter">0</small></div>
|
|
||||||
|
|
||||||
<div class="floating_prompt_radio_group">
|
|
||||||
<label>
|
|
||||||
<input type="radio" name="extension_floating_position" value="0" />
|
|
||||||
After scenario
|
|
||||||
</label>
|
|
||||||
<label>
|
|
||||||
<input type="radio" name="extension_floating_position" value="1" />
|
|
||||||
In-chat @ Depth <input id="extension_floating_depth" class="text_pole widthUnset" type="number" min="0" max="99" />
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<!--<label for="extension_floating_interval">In-Chat Insertion Depth</label>-->
|
|
||||||
|
|
||||||
<label for="extension_floating_interval">Insertion Frequency</label>
|
|
||||||
|
|
||||||
<input id="extension_floating_interval" class="text_pole widthUnset" type="number" min="0" max="999" /><small> (0 = Disable, 1 = Always)</small>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<span>User inputs until next insertion: <span id="extension_floating_counter">(disabled)</span></span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<hr class="sysHR">
|
|
||||||
<div class="inline-drawer">
|
|
||||||
<div id="charaANBlockToggle" class="inline-drawer-toggle inline-drawer-header">
|
|
||||||
<b>Character Author's Note</b>
|
|
||||||
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
|
|
||||||
</div>
|
|
||||||
<div class="inline-drawer-content">
|
|
||||||
<small>Will be automatically added as the author's note for this character. Will be used in groups, but can't be modified when a group chat is open.</small>
|
|
||||||
|
|
||||||
<textarea id="extension_floating_chara" class="text_pole" rows="8" maxlength="10000"
|
|
||||||
placeholder="Example:\n[Scenario: wacky adventures; Genre: romantic comedy; Style: verbose, creative]"></textarea>
|
|
||||||
<div class="extension_token_counter">Tokens: <span id="extension_floating_chara_token_counter">0</small></div>
|
|
||||||
|
|
||||||
<label class="checkbox_label" for="extension_use_floating_chara">
|
|
||||||
<input id="extension_use_floating_chara" type="checkbox" />
|
|
||||||
<span data-i18n="Use character author's note">Use character author's note</span>
|
|
||||||
</label>
|
|
||||||
<div class="floating_prompt_radio_group">
|
|
||||||
<label>
|
|
||||||
<input type="radio" name="extension_floating_char_position" value="0" />
|
|
||||||
Replace Author's Note
|
|
||||||
</label>
|
|
||||||
<label>
|
|
||||||
<input type="radio" name="extension_floating_char_position" value="1" />
|
|
||||||
Top of Author's Note
|
|
||||||
</label>
|
|
||||||
<label>
|
|
||||||
<input type="radio" name="extension_floating_char_position" value="2" />
|
|
||||||
Bottom of Author's Note
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<hr class="sysHR">
|
|
||||||
<div class="inline-drawer">
|
|
||||||
<div id="defaultANBlockToggle" class="inline-drawer-toggle inline-drawer-header">
|
|
||||||
<b>Default Author's Note</b>
|
|
||||||
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
|
|
||||||
</div>
|
|
||||||
<div class="inline-drawer-content">
|
|
||||||
<small>Will be automatically added as the Author's Note for all new chats.</small>
|
|
||||||
|
|
||||||
<textarea id="extension_floating_default" class="text_pole" rows="8" maxlength="10000"
|
|
||||||
placeholder="Example:\n[Scenario: wacky adventures; Genre: romantic comedy; Style: verbose, creative]"></textarea>
|
|
||||||
<div class="extension_token_counter">Tokens: <span id="extension_floating_default_token_counter">0</small></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
|
|
||||||
const ANButtonHtml = `
|
|
||||||
<a id="option_toggle_AN">
|
|
||||||
<i class="fa-lg fa-solid fa-note-sticky"></i>
|
|
||||||
<span data-i18n="Author's Note">Author's Note</span>
|
|
||||||
</a>
|
|
||||||
`;
|
|
||||||
|
|
||||||
$('#options .options-content').prepend(ANButtonHtml);
|
|
||||||
$('#movingDivs').append(settingsHtml);
|
|
||||||
$('#extension_floating_prompt').on('input', onExtensionFloatingPromptInput);
|
$('#extension_floating_prompt').on('input', onExtensionFloatingPromptInput);
|
||||||
$('#extension_floating_interval').on('input', onExtensionFloatingIntervalInput);
|
$('#extension_floating_interval').on('input', onExtensionFloatingIntervalInput);
|
||||||
$('#extension_floating_depth').on('input', onExtensionFloatingDepthInput);
|
$('#extension_floating_depth').on('input', onExtensionFloatingDepthInput);
|
||||||
@@ -473,13 +372,6 @@ function addExtensionsSettings() {
|
|||||||
setTimeout(function () { $('#floatingPrompt').hide() }, 200);
|
setTimeout(function () { $('#floatingPrompt').hide() }, 200);
|
||||||
})
|
})
|
||||||
$("#option_toggle_AN").on('click', onANMenuItemClick);
|
$("#option_toggle_AN").on('click', onANMenuItemClick);
|
||||||
}
|
|
||||||
|
|
||||||
// Inject extension when extensions_activating is fired
|
|
||||||
// Inserts the extension first since it's statically imported
|
|
||||||
jQuery(async () => {
|
|
||||||
await waitUntilCondition(() => eventSource !== undefined);
|
|
||||||
eventSource.on(event_types.EXTENSIONS_FIRST_LOAD, addExtensionsSettings);
|
|
||||||
|
|
||||||
registerSlashCommand('note', setNoteTextCommand, [], "<span class='monospace'>(text)</span> – sets an author's note for the currently selected chat", true, true);
|
registerSlashCommand('note', setNoteTextCommand, [], "<span class='monospace'>(text)</span> – sets an author's note for the currently selected chat", true, true);
|
||||||
registerSlashCommand('depth', setNoteDepthCommand, [], "<span class='monospace'>(number)</span> – sets an author's note depth for in-chat positioning", true, true);
|
registerSlashCommand('depth', setNoteDepthCommand, [], "<span class='monospace'>(number)</span> – sets an author's note depth for in-chat positioning", true, true);
|
@@ -411,9 +411,9 @@ async function generateExtensionHtml(name, manifest, isActive, isDisabled, isExt
|
|||||||
let toggleElement = isActive || isDisabled ?
|
let toggleElement = isActive || isDisabled ?
|
||||||
`<input type="checkbox" title="Click to toggle" data-name="${name}" class="${isActive ? 'toggle_disable' : 'toggle_enable'} ${checkboxClass}" ${isActive ? 'checked' : ''}>` :
|
`<input type="checkbox" title="Click to toggle" data-name="${name}" class="${isActive ? 'toggle_disable' : 'toggle_enable'} ${checkboxClass}" ${isActive ? 'checked' : ''}>` :
|
||||||
`<input type="checkbox" title="Cannot enable extension" data-name="${name}" class="extension_missing ${checkboxClass}" disabled>`;
|
`<input type="checkbox" title="Cannot enable extension" data-name="${name}" class="extension_missing ${checkboxClass}" disabled>`;
|
||||||
|
|
||||||
let deleteButton = isExternal ? `<span class="delete-button"><button class="btn_delete menu_button" data-name="${name.replace('third-party', '')}" title="Delete"><i class="fa-solid fa-trash-can"></i></button></span>` : '';
|
let deleteButton = isExternal ? `<span class="delete-button"><button class="btn_delete menu_button" data-name="${name.replace('third-party', '')}" title="Delete"><i class="fa-solid fa-trash-can"></i></button></span>` : '';
|
||||||
|
|
||||||
// if external, wrap the name in a link to the repo
|
// if external, wrap the name in a link to the repo
|
||||||
|
|
||||||
let extensionHtml = `<hr>
|
let extensionHtml = `<hr>
|
||||||
@@ -423,7 +423,7 @@ async function generateExtensionHtml(name, manifest, isActive, isDisabled, isExt
|
|||||||
${originHtml}
|
${originHtml}
|
||||||
<span class="${isActive ? "extension_enabled" : isDisabled ? "extension_disabled" : "extension_missing"}">
|
<span class="${isActive ? "extension_enabled" : isDisabled ? "extension_disabled" : "extension_missing"}">
|
||||||
${DOMPurify.sanitize(displayName)}${displayVersion}
|
${DOMPurify.sanitize(displayName)}${displayVersion}
|
||||||
</span>
|
</span>
|
||||||
${isExternal ? '</a>' : ''}
|
${isExternal ? '</a>' : ''}
|
||||||
|
|
||||||
<span style="float:right;">${toggleElement}</span>
|
<span style="float:right;">${toggleElement}</span>
|
||||||
|
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"display_name": "Author's Note",
|
|
||||||
"loading_order": 1,
|
|
||||||
"requires": [],
|
|
||||||
"optional": [],
|
|
||||||
"generate_interceptor": "AuthorNote_generateInterceptor",
|
|
||||||
"js": "index.js",
|
|
||||||
"css": "style.css",
|
|
||||||
"author": "Cohee#1207",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"homePage": "https://github.com/SillyTavern/SillyTavern"
|
|
||||||
}
|
|
@@ -1,60 +0,0 @@
|
|||||||
#floatingPrompt {
|
|
||||||
overflow-y: auto;
|
|
||||||
max-width: 90svw;
|
|
||||||
max-height: 90svh;
|
|
||||||
min-width: 100px;
|
|
||||||
min-height: 100px;
|
|
||||||
border-radius: 10px;
|
|
||||||
border: 1px solid var(--white30a);
|
|
||||||
position: fixed;
|
|
||||||
padding: 10px;
|
|
||||||
padding-top: 25px;
|
|
||||||
display: none;
|
|
||||||
flex-direction: column;
|
|
||||||
box-shadow: 0 0 10px var(--black70a);
|
|
||||||
z-index: 3000;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
margin: 0;
|
|
||||||
right: unset;
|
|
||||||
width: calc(((100svw - var(--sheldWidth)) / 2) - 1px);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating_prompt_radio_group {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
#extension_floating_counter {
|
|
||||||
font-weight: 600;
|
|
||||||
color: orange;
|
|
||||||
}
|
|
||||||
|
|
||||||
.extension_token_counter {
|
|
||||||
font-size: calc(var(--mainFontSize) * 0.9);
|
|
||||||
width: 100%;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating_prompt_settings textarea {
|
|
||||||
font-size: calc(var(--mainFontSize) * 0.9);
|
|
||||||
line-height: 1.2;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ANClose {
|
|
||||||
height: 15px;
|
|
||||||
aspect-ratio: 1 / 1;
|
|
||||||
font-size: 20px;
|
|
||||||
opacity: 0.5;
|
|
||||||
transition: all 250ms;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ANClose:hover {
|
|
||||||
cursor: pointer;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#floatingPrompt .drag-grabber {
|
|
||||||
position: unset;
|
|
||||||
}
|
|
@@ -1,7 +1,7 @@
|
|||||||
import { saveSettings, callPopup, substituteParams, getTokenCount, getRequestHeaders, chat_metadata, this_chid, characters, saveCharacterDebounced, menu_type } from "../script.js";
|
import { saveSettings, callPopup, substituteParams, getTokenCount, getRequestHeaders, chat_metadata, this_chid, characters, saveCharacterDebounced, menu_type } from "../script.js";
|
||||||
import { download, debounce, initScrollHeight, resetScrollHeight, parseJsonFile, extractDataFromPng, getFileBuffer, delay, getCharaFilename, deepClone } from "./utils.js";
|
import { download, debounce, initScrollHeight, resetScrollHeight, parseJsonFile, extractDataFromPng, getFileBuffer, delay, getCharaFilename, deepClone } from "./utils.js";
|
||||||
import { getContext } from "./extensions.js";
|
import { getContext } from "./extensions.js";
|
||||||
import { NOTE_MODULE_NAME, metadata_keys, shouldWIAddPrompt } from "./extensions/floating-prompt/index.js";
|
import { NOTE_MODULE_NAME, metadata_keys, shouldWIAddPrompt } from "./authors-note.js";
|
||||||
import { registerSlashCommand } from "./slash-commands.js";
|
import { registerSlashCommand } from "./slash-commands.js";
|
||||||
import { deviceInfo } from "./RossAscends-mods.js";
|
import { deviceInfo } from "./RossAscends-mods.js";
|
||||||
|
|
||||||
|
@@ -1264,6 +1264,67 @@ body.charListGrid #rm_print_characters_block .tags_inline {
|
|||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#floatingPrompt {
|
||||||
|
overflow-y: auto;
|
||||||
|
max-width: 90svw;
|
||||||
|
max-height: 90svh;
|
||||||
|
min-width: 100px;
|
||||||
|
min-height: 100px;
|
||||||
|
border-radius: 10px;
|
||||||
|
border: 1px solid var(--white30a);
|
||||||
|
position: fixed;
|
||||||
|
padding: 10px;
|
||||||
|
padding-top: 25px;
|
||||||
|
display: none;
|
||||||
|
flex-direction: column;
|
||||||
|
box-shadow: 0 0 10px var(--black70a);
|
||||||
|
z-index: 3000;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
margin: 0;
|
||||||
|
right: unset;
|
||||||
|
width: calc(((100svw - var(--sheldWidth)) / 2) - 1px);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating_prompt_radio_group {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
#extension_floating_counter {
|
||||||
|
font-weight: 600;
|
||||||
|
color: orange;
|
||||||
|
}
|
||||||
|
|
||||||
|
.extension_token_counter {
|
||||||
|
font-size: calc(var(--mainFontSize) * 0.9);
|
||||||
|
width: 100%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating_prompt_settings textarea {
|
||||||
|
font-size: calc(var(--mainFontSize) * 0.9);
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ANClose {
|
||||||
|
height: 15px;
|
||||||
|
aspect-ratio: 1 / 1;
|
||||||
|
font-size: 20px;
|
||||||
|
opacity: 0.5;
|
||||||
|
transition: all 250ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ANClose:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#floatingPrompt .drag-grabber {
|
||||||
|
position: unset;
|
||||||
|
}
|
||||||
|
|
||||||
/* ################################################################*/
|
/* ################################################################*/
|
||||||
/* CUSTOMIZE THE DROPDOWN SELECT COLORS FOR RIGHT MENU
|
/* CUSTOMIZE THE DROPDOWN SELECT COLORS FOR RIGHT MENU
|
||||||
/*#################################################################*/
|
/*#################################################################*/
|
||||||
|
Reference in New Issue
Block a user