* Update - Revert connection profile change TC commands load order
This change was made to prevent preset tied samplers from breaking, such thing doesn't exist anymore.
* Update - Unlink preset renaming logic from sampler selection lock
* Update - Link TC sampler selection lock to API Type
* Fix - Clean comments
* Update - Use localforage selectedSamplers and data selectsampler as main sampler selection storage
* Fix - ESLint errors
* Update - Change lock tooltip with correct description
* Fix - Move and await sampler select localforage initializer to finish
Tried to move it to the most reasonable place possible that allowed to make an await.
* Fix - Make loadTextGenSettings async to load API selected samplers
* Feat - Save and load manually selected samplers per preset
* Fix - Sync sampler popup with selected sampler state settings
* Fix - Prevent breaking visualization after disabling keep selected samplers
* Fix - ESLint errors in samplerSelect.js
* Fix - ESLint errors in textgen-settings.js
* Docs - Write JSDocs for new methods in textgen-settings.js
* Update - Make the reset button work individually per preset
* Fix - Trailing whitespace at the end of class selector
* Fix - Update tooltip information for force samplers toggle
* Fix - Prevent calling isSamplerManualPriorityEnabled a bajillion times
* Fix - Unbrick switch from manually-forced to non-manually-forced preset
This prevents samplers non controlled by [data-tg-type] from being sent to the shadow realm if they were previously hidden by [data-tg-samplers]. is_preset_switch is just to prevent breaking muscle memmory of users not using force manually selected samplers.
* Fix - Load manually selected samplers on connection profile switch
Changing preset does not update samplers ONLY IF force manually selection is disabled. Changing API before preset would update the samplers, but using the settings of the previous preset, due to preset being changed AFTER the API.
* Fix - Switch API Type controls in the API Connections panel
* Fix - ESLint errors in textgen-settings.js
* Fix - Update sampler selection only with textgenerationwebui as main API selected
* Styles - Change the sampler selection lock button icon to an actual lock.
* Fix - Await for sampler selection reset to finish
* Update - Normalize function name
* Update - Preserve manual sampler selections on preset renaming
* Fix - Properly reset sampler manual selections
* Update - Ensure selection reset displays API specific samplers
* Fix - ESLint errors
* Fix - Avoid modifying non-existent data
* Update - Move manual sampler control methods to samplerSelect.js
* Fix - Break circular file dependency between textgen-settings.js and samplerSelect.js
setting_names was unavailable during page load, throwing an error and preventing ST from loading.
* Update menu layout
* Remove pointless await
* Update param naming to camelCase
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
* Preserve media playback state when running appendMediaToMessage
* Better selector specificity
* Fix local variable name
* Move typedef to global.d.ts
* Check for readyState on save/restore
* Only check for currentSrc on restoration callback
- Added 160px max-height to select2 multiple selection, primary key, and secondary key text areas in world entries
- Enabled vertical scrolling with hidden horizontal overflow for better UX with long content
* feat: improve multiline input handling in popups
- Added Ctrl+Enter requirement for submission in multiline input popups to prevent accidental sends
- Exported PopupUtils class for external use
* refactor: remove redundant higher/different rows from input popups
- Removed rows: 2 from callGenericPopup calls where default behavior is sufficient
- Increased rows from 2 to 4 in caption extension for better multiline input experience
* refactor: extract IP whitelist validation into helper function
- Added isIPInWhitelist helper with error handling for individual whitelist entry checks
- Replaced inline whitelist matching logic with reusable function calls
- Added JSDoc type annotations and error logging for failed IP matching attempts
* refactor: simplify whitelist validation with upfront filtering
- Moved IP validation to startup time instead of per-request checking
- Extracted validateWhitelist function to filter invalid entries once at initialization
- Simplified isIPInWhitelist by removing redundant error handling after validation
* fix: correct IP whitelist matching to use parsed CIDR notation
* Add captioning for video attachments
* Unify error toast titles
* Add MEDIA_SOURCE enum and update media handling to include source information
* Unify attachment handling logic
* Add error handling for auto-captioning failures
* Use string formatting for console error
* TC: Allow setting empty JSON schema
* Fix check for llamacpp schema
* Handle grammar/schema for Aphrodite
* Conditional include for guided_json
* Update default presets with null value
* Conditional include into payload for grammar/schema